Я хочу ЗАКАЗАТЬ ПО некоторому полю с DESC - PullRequest
0 голосов
/ 11 июля 2019

У меня есть данные (это идентификатор):

SB-1
SB-10
SB-9

Мой запрос

SELECT * FROM sb ORDER BY id DESC

Результат:

SB-9
SB-10
SB-1

Я хочу свой результатэто:

SB-10
SB-9
SB-1

Как запрос для этого?

Ответы [ 3 ]

2 голосов
/ 11 июля 2019

Следующий запрос должен делать то, что вы хотите:

SELECT * FROM sb
ORDER BY LENGTH(id) DESC, id DESC
0 голосов
/ 11 июля 2019

Следующий запрос должен делать то, что вы хотите:

select * , cast( replace(id,'SB-','')  as int ) as newid
from tablename order by newid desc
0 голосов
/ 11 июля 2019

используйте SUBSTRING_INDEX и выберите значение int, затем сделайте заказ на

select * , cast( SUBSTRING_INDEX(column_name,'-',-1)  as unsigned ) as v
from table_name order by v desc

и нуждаетесь в явном преобразовании

демонстрационная ссылка

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