Чтобы позаимствовать из предыдущих ответов, приведение или преобразование столбца в числовое выражение в предложении ORDER
является распространенным решением для упорядочения значений в символьном поле численно.
Частичное решение
SELECT * FROM clients ORDER BY CAST(`id` AS DECIMAL)
Однако это решение чаще всего реализуется для строго числовых значений. Поскольку ваши значения представляют собой смесь числа, за которым следует буква, этого решения недостаточно. Если у вас есть значения, в которых начальная десятичная часть идентична, например 2
, 2A
и 2B
, они могут отображаться в любом порядке.
Полное решение
Таким образом, после того, как значения упорядочены по номерам, их следует упорядочить по стандартному (лексикографическому) порядку:
SELECT * FROM clients ORDER BY CAST(`id` AS DECIMAL), id