Получить n-й ряд после m-го ряда в mysql - PullRequest
0 голосов
/ 19 сентября 2019

Я хочу получить какую-то определенную строку после того, как я получу все строки из таблицы 'user'.Таблица 'user' имеет 10 таких записей

1 . ABCD
2 . hfdff
3 . uiyuiyoy
4 . uytitito
5 . piooioi
6 . GXX jhjkhh
7 . GXX uyyto
8 . GXX upupu
9 . tytuyur
10 . zvsfsgsg

Так что я хочу показать результаты вроде этого

1 . ABCD
2 . hfdff
3 . uiyuiyoy
4 . uytitito
5 . piooioi
6 . tytuyur
7 . zvsfsgsg 
8 . GXX jhjkhh
9 . GXX uyyto
10 . GXX upupu

Я хочу получить записи, которые начинаются с GXX в последний раз,Можно ли это сделать? Кто-нибудь может подсказать, как этого добиться?какой будет запрос для этого?Пожалуйста, помогите.

Ответы [ 3 ]

1 голос
/ 19 сентября 2019

Вы можете использовать case..when выражение с функцией substr():

order by case when substring(str,1,3) = 'GXX' then 1 else 0 end, str

, это помещает значения, начинающиеся с GXX внизу, но если вы точно упорядочиваете согласноваш желаемый результат, предпочтительнее использовать это, скорее:

order by case when substring(str,1,3) = 'GXX' then 1 else 0 end, case when substring(str,5,1) = 'u' then str else 'z' end desc

Демо

0 голосов
/ 19 сентября 2019

MySQL рассматривает логические выражения как числа, с 0 для false и 1 для true.Это удобно в данной ситуации:

order by (col like 'GXX%'),  -- put these last
         col
0 голосов
/ 19 сентября 2019

Добавьте ORDER BY columnname ASC в конце вашего SELECT

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...