за 3 слова?
Сравните первое слово с последним и прошейте их по-разному, если порядок неправильный.
Пример:
SELECT col,
CASE
WHEN (LENGTH(TRIM(col)) - LENGTH(REPLACE(TRIM(col), ' ', ''))+1) = 3 AND SUBSTRING_INDEX(TRIM(col),' ',1) > SUBSTRING_INDEX(TRIM(col),' ',-1)
THEN CONCAT(
SUBSTRING_INDEX(TRIM(col),' ',-1), ' ',
SUBSTRING_INDEX(
SUBSTRING_INDEX(TRIM(col),' ',2),' ',-1),
' ',SUBSTRING_INDEX(TRIM(col),' ',1))
ELSE col
END as sorted
FROM
(
select 'Foo to Bar' as col
union all select 'Bar to Foo'
union all select 'Foo'
) q
Тест здесь