У меня есть ряд полей varchar в базе данных MySQL, которые «пронумерованы»:
+-----------+
| name |
+-----------+
| thing 1 |
| thing 2 |
| thing 3 |
| ... |
| thing 10 |
| thing 11 |
+-----------+
Я хочу заказать их, как указано выше.Однако простой ORDER_BY table.name
производит что-то вроде следующего:
thing 1
thing 10
thing 11
thing 2
thing 3
...
Это имеет некоторый смысл, поскольку MySQL рассматривает все поле как строку (varchar).Тем не менее, я пробовал многочисленные методы сортировки, включая CAST(name AS DECIMAL)
и name + 0
.Это будет только сортировать по десятичной части, игнорируя строковую часть.Ничего из этого не работает, потому что мне нужно отсортировать по name
сначала и , а затем по последнему десятичному числу.
Я пытался ORDER_BY name, name + 0
, но, похоже, ничего не работает.Как мне выполнить и ORDER_BY
, а затем ORDER_BY
в этом подмножестве?(Я думаю, что это будет работать).