Вопрос сортировки MySQL - PullRequest
       3

Вопрос сортировки MySQL

0 голосов
/ 04 января 2011

У меня есть несколько наборов чисел, которые я пытаюсь произнести

4.13.1.5, 4.13.1, 4.10.5, 4.9.97

Но когда я использую mysql order by function, каким-то образом это происходит странным образом.

4.13.1.5, 4.13.1, 4.9.37, 4.10.5

Должно ли быть, что 4.9 приходит в конце? Я что-то здесь упускаю?

Ответы [ 2 ]

2 голосов
/ 04 января 2011

Поскольку это технически строки, а не числа, MySQL работает правильно.. (символ 46) выше в порядке сортировки, чем любое из чисел (символы 48-59).Когда дело доходит до сравнения строки, она идет по значению ASCII, не разбивая ее на токены и сравнивая числа.

0 голосов
/ 04 января 2011

у меня работает: </p> <pre><code>mysql> create table test ( value varchar(10)); Query OK, 0 rows affected (0.18 sec) mysql> insert into test values ("4.13.1.5"), ("4.13.1"), ("4.10.5"), ("4.9.97") -> ; Query OK, 4 rows affected (0.00 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> select value from test order by value; +----------+ | value | +----------+ | 4.10.5 | | 4.13.1 | | 4.13.1.5 | | 4.9.97 | +----------+ 4 rows in set (0.00 sec)

...