Заказать последние 3 символа

У меня есть таблица вроде:

id  name
--------
1   clark_009
2   clark_012
3   johny_002
4   johny_010

Мне нужно получить результаты в следующем порядке:

johny_002
clark_009
johny_010
clark_012

Не спрашивайте меня, что я уже пробовал, я понятия не имею, как это сделать.

Ответы

Ответ 1

Это сделает это, просто выбрав самые правильные 3 символа и упорядочивая это значение по возрастанию.

SELECT *
FROM table_name
ORDER BY RIGHT(name, 3) ASC;

Следует добавить, что по мере роста ваших данных это станет неэффективным решением. В конце концов вы, вероятно, захотите сохранить числовое приложение в отдельном столбце с индексированным целым числом, чтобы сортировка была оптимальной.

Ответ 2

вы должны попробовать это.

SELECT * FROM Table order by SUBSTRING(name, -3);

Удачи!

Ответ 3

Вы можете применить функцию substring_index для анализа этих значений -

select * from table order by substring_index(name, '_', -1)

Ответ 4

Вы можете использовать функцию MySQL SUBSTRING() для сортировки по подстроке

Синтаксис: SUBSTRING(string,position,length)

Пример: Сортировка по последним 3 символам строки

SELECT * FROM TableName ORDER BY SUBSTRING(FieldName, -3);
#OR
SELECT * FROM TableName ORDER BY SUBSTRING(FieldName, -3,3);

Пример: Сортировка по первым 3 символам строки

SELECT * FROM TableName ORDER BY SUBSTRING(FieldName, 1,3);

Примечание: Positive Начало позиции/индекса слева направо и Negative Начало позиции/индекса справа налево от строки.

Ниже представлена ​​информация о функции SUBSTRING().