OriginalGriff
Это происходит потому, что вы заказываете по количеству строк, а порядок строк определяется первым различным символом между двумя строками. В вашем случае E2 идет после E1, E10 и E11, потому что первый другой символ - это "2" в одной строке и "1" в другой: поскольку " 1 "идет перед" 2 "в наборе символов, все строки, начинающиеся с "E1", будут идти перед всеми строками, начинающимися с " E2 " - остальные символы вообще не рассматриваются.
Вы не можете обойти это, или не легко, потому что это то, как работают строки!
Есть три вещи, которые вы можете сделать:
1) дополните свой идентификатор ведущими нулями:
E01 | A
E10 | B
E11 | C
E02 | D
E03 | E
E04 | F
2) Используйте вычисляемый столбец, чтобы получить префикс символа и целочисленное число:
Сгенерированные столбцы в MySQL 5.7.5 | блог MySQL Server[
^]
3) Напишите функцию для разделения вашего идентификатора, преобразуйте числовую часть в число и используйте ее для заказа.
- Я? Я не использую "смешанные" идентификаторы именно по этой причине!
CodeEager
Хорошо,сэр, я понял
Я выберу первый, потому что это будет легко для меня.
Спасибо.