|
|
|
|
|
для: Trianon
(17.03.2010 в 16:13)
| | Спасибо за ответ:)
думаю второй вариант со значением сортировки будет лучше:) | |
|
|
|
|
|
|
|
для: Spenser
(17.03.2010 в 16:11)
| | Потому что текстовые данные сортируются лексикографически.
Числовые данные сортируются арифметически.
А если кто-то хочет всё сразу, то это "дай мне щенка, да чтоб не сукин сын".
Вы можете подправлять названия так, чтобы они становились ключе-корректными, т.е. порождающими лексикографический порядок, равный арифметическому. Как я показал.
Вы можете завести отдельное поле для сортировки , в котором указывать явные номера позиций.
Вы можете поднять все индексы в php и отсортировать их там natsort'ом, а затем запросить данные из таблицы повторно указав сортировку по позиции в списке.
Но последнее будет ересью. Хотя внешне Вас может и обрадует. | |
|
|
|
|
|
|
|
для: Trianon
(17.03.2010 в 15:59)
| | Ну ставить в названиях товаров пробелы это не выход.
а почему natsort() это ересь? | |
|
|
|
|
|
|
|
для: Spenser
(17.03.2010 в 15:25)
| | Вообще-то мне казалось, что любые артикулы (в т.ч. и артикулы Термекса) пишутся без пробелов.
Но если я ошибаюсь, то:
Водонагреватель Термекс H 10 O
Водонагреватель Термекс H 10 U
Водонагреватель Термекс H 30 O
Водонагреватель Термекс H 100 U
|
При чем на странице сайта Вы этого не увидите. Увидите именно как у Вас написано "должно быть".
иначе никак.
В php, правда, natsort() есть. Но, по-моему, это ересь мерзкая.
Хотите - можете его присобачить. | |
|
|
|
|
|
|
|
для: Trianon
(17.03.2010 в 14:52)
| | не, тут немного не про это:) товары для примера:
Водонагреватель Термекс H 10 O
Водонагреватель Термекс H 10 U
Водонагреватель Термекс H 100 U
Водонагреватель Термекс H 30 O
а должно быть по логике:
Водонагреватель Термекс H 10 O
Водонагреватель Термекс H 10 U
Водонагреватель Термекс H 30 O
Водонагреватель Термекс H 100 U
вот я про это, как такого добиться? | |
|
|
|
|
|
|
|
для: Spenser
(17.03.2010 в 14:31)
| | довольно странные названия товаров.
Можно посоветовать называть их так:
товар 1
товар 2
товар 10
товар 20
товар 100
|
| |
|
|
|
|
|
|
| Здравствуйте
такая ситуация: у меня названия товаров хранятся в поле с типом ТЕХТ я сортирую по названию ORDER BY name, выводиться в таком виде:
товар 1
товар 10
товар 100
товар 2
товар 20
и т.д.
можно ли как то сделать чтобы сортировалось так (ме обязательно сразу в запросе, можно и потом обработать, но это уже если других вариантов не будет):
товар 1
товар 2
товар 10
товар 20
товар 100
?
я пробовал использовать ORDER BY CAST(name AS SIGNED), так сортируется нормально по числам, но тогда по алфавиту уже наоборот. подскажите как тут быть? | |
|
|
|
|