|
|
|
| делаю сортировку по полю типа - longtext. от 1 до 9 сортирует хорошо, а вот дальше значение 10 и 11 стают вторымы после единички, а должны стоять в конце. Почему так происходит и как это обойти?
Вот запрос - SELECT *
FROM `wp_postmeta`
WHERE meta_key = '_acf_sort'
ORDER BY meta_value ASC
LIMIT 0 , 30
А вот, что выводит - http://www.imagepost.ru/?v=sort.jpg | |
|
|
|
|
|
|
|
для: vilk
(26.04.2011 в 12:57)
| | Строки, в отличие от цифр сортируются, начиная с первых символов, а не последних. Лучше изменить тип longtext на числовой, например, int (особенно, если вы собираетесь хранить там только цифры). | |
|
|
|
|
|
|
|
для: cheops
(26.04.2011 в 12:59)
| | К сожалению не могу изменить тип поля на int так как в некоторых случаях это поле хранит текст. Так движок сделан.
Может можно обойти ограничение так чтобы longtext нормально сортировался? | |
|
|
|
|
|
|
|
для: vilk
(26.04.2011 в 13:05)
| | Попробуйте следующий прием - добавьте число к строковой величине, чтобы вызвать автоматическое приведение типа
SELECT *
FROM `wp_postmeta`
WHERE meta_key = '_acf_sort'
ORDER BY (0 + meta_value) ASC
LIMIT 0 , 30
|
| |
|
|
|
|
|
|
|
для: cheops
(26.04.2011 в 13:14)
| | Отлично. Большое спасибо! | |
|
|
|