#mysql
#mysql
Вопрос:
Мне нужно отсортировать [порядок по] запросу на основе начальной буквы.
Например, будет столбец заголовка.
Мне нужно отсортировать на основе буквы «e».
Необходимый результат заключается в том, что поля, начинающиеся с буквы «e», должны быть первыми, а остальная часть результата должна появиться позже.
Ответ №1:
...ORDER BY CASE WHEN LEFT(title, 1) = 'e' THEN 1 ELSE 2 END,
title
Комментарии:
1. @sathish Рад помочь. Пожалуйста, отметьте этот ответ как «принятый», нажав на выделенную галочку рядом с ним.
2. Привет, Джо, теперь мне нужно отсортировать на основе указанного порядка, т. Е. Сначала должны быть буквы, начинающиеся с ‘e’, затем ‘r’, затем ‘s’ … Можете ли вы мне помочь…
3. @sathish: просто продолжайте расширять оператор CASE по мере необходимости.
...ORDER BY CASE WHEN LEFT(title,1) = 'e' THEN 1 WHEN LEFT(title,1) = 'r' THEN 2 WHEN LEFT(title,1) = 's' THEN 3 ELSE 999 END, title
Ответ №2:
ORDER BY (SUBSTR(LOWER(title), 1, 1)='e')
Комментарии:
1. Ваше решение не завершено, вы должны отсортировать результат по ASC или DESC в конце.
2. Об этом требовании не идет и речи. «Остальная часть результата» не подразумевает, следует ли его сортировать или нет.
3. Но поля, начинающиеся с буквы «e», не появлялись первыми без сортировки.