Конкретный порядок команд SQL - PullRequest
2 голосов
/ 05 июня 2011

Скажите, у меня есть таблица, похожая на:

ID    Name
1     Test
2     Contest
3     Fittest
4     Testament

Есть ли запрос MySQL, который я мог бы использовать для упорядочения, чтобы он сначала отображал определенное слово?

Например, пользователи ищут слово «Тест». У меня есть оператор, похожий на «SELECT * FROM table WHERE NAME LIKE '% Test%'". Могу ли я отобразить результаты, чтобы показать вещи, которые начинаются с НАЧАТЬ с теста, а затем все остальное, пока все в алфавитном порядке.

Таким образом, вывод будет:

Test
Testament
Contested
Fittest

Спасибо.

Ответы [ 2 ]

7 голосов
/ 05 июня 2011

Это поместит ваши слова, начинающиеся с Test вверху, и отсортирует эти слова плюс остаток списка в алфавитном порядке.

SELECT * FROM mytable 
ORDER BY CASE WHEN name LIKE 'test%' THEN 0 ELSE 1 END ASC, name ASC
3 голосов
/ 05 июня 2011
SELECT * FROM table 
WHERE NAME LIKE '%Test%'
order by case when name like 'test%' then 0 else 1 end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...