Заказать последние 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().