Странные результаты в операторе SELECT MySQL с ORDER BY - PullRequest
0 голосов
/ 02 сентября 2011

Я получаю странные результаты в операторе MySQL SELECT, в котором используется ORDER BY my_column ASC.

Это упорядочивает результаты так, как их упорядочил бы «компьютер» вместо человека:

  • Элемент F: 241,565853
  • Элемент B: 25,310854
  • Элемент D: 25,397155
  • Элемент C: 260,252356
  • Элемент A: 27,7740
  • Элемент E: 271.774058

Как правильно передать его в ORDER BY?В моем операторе SELECT есть пара левых соединений - я не уверен, что это изменит ситуацию.

Любые предложения о том, как исправить эту проблему?

Ответы [ 2 ]

1 голос
/ 02 сентября 2011

Что-то вроде этого должно сделать это:

ORDER BY ABS(my_column) ASC
0 голосов
/ 02 сентября 2011

Столбец, по которому вы упорядочиваете, скорее всего, представляет собой тип данных на основе строк (varchar, text и т. Д.).Вы видите лексически правильное упорядочение для такого типа данных.Измените столбец, чтобы использовать числовой тип данных, или (менее предпочтительно, потому что почему вы сохраняете числовое значение в виде строки ), приведите столбец к числовому типу и выполните сортировку этого преобразования.

...