Натуральная сортировка (Natural Sorting)

Написана 2 Февраля, 2012 в 20:38. Автор: borN_free   |   Теги: mysql, sql, sorting Комментарии 5

Natural SortingНебольшой пост о том, как помогла натуральная сортировка.

Дано: таблица с полем типа TEXT, содержащая данные о моделях запчастей. Задача: вывести данные в порядке убывания по данному полю.

Отлично, давайте напишем запрос:

SELECT * FROM supplies ORDER BY model DESC

Очевидно, что строка "93A" будет больше с точки зрения MySQL, чем строка "1457B", а нам надо наоборот. Результат:

93A
1457B
12АВ
1000123OP

Идеальным, и очень лаконичным решением являетя добавление нуля к имени поля. Наш запрос будет выглядить следующим образом:

SELECT * FROM supplies ORDER BY (model+0) DESC

Помните приведение типов в PHP или Javascript? Нечто схожее происходит и здесь, MySQL сортирует теперь, понимая значение поля как числа, а не строки, и результат теперь удовлетворительный:

1000123OP
1457B
93A
12АВ

PS: столкнулся на практике с ситуацией, когда цены продуктов хранились в поле с типом TEXT, и сортировка продуктов естественно никогда не работала должным образом. Не повторяйте таких ошибок, для каждого случая есть свой тип данных =)

5 comments

ответить
July 17, 2014 at 03:57 am

Спасибо! Полезная заметка =)

ответить
October 4, 2016 at 01:14 pm

Хуйня!

ответить
January 17, 2017 at 05:26 am

Только стоит учесть, что при это вы теряете индекс, и скорость выборки падает.

ответить
August 21, 2017 at 02:57 am

In 1957, the Earl launched an ultra thin watch to subvert the new watches uk watchmaking world, and reinterpreted the definition of elegant watches. In this year, to celebrate the birth of the 60th anniversary tab paragon, the grand launch of rolex uk its present slim elegant concept Altiplano limited edition watch series, the reappearance of <a href="http://www.ownwatches.co.uk" title="replica watch >replica watch extraordinary masterpiece.

ответить
August 22, 2017 at 07:13 am

Stripping the Bonneville T120 back to its universal highway pegs purest essence it delivers all the hallmarks of motorcycle driving gloves a real bobber, with clean lines and low stance, single seat, wide flat bars, minimal clutch and brake levers bodywork and headlight, sculpted tank, wire-spoke wheels with wide rear wheel and that mountain bike handlebar risers all-important hard tail look.

Оставьте свой комментарий:

Поля с * обязательны.