Добрый вечер. Имеется сортировка товаров в категориях в виде: Товар 1 мм Товар 10 мм Товар 2 мм Товар 20 мм. Как сделать так, чтобы товар выводился по натуральной нумерации: Товар 1 мм Товар 2 мм Товар 10 мм Товар 20 мм??
Далеко не то, что нужно. Мне нужна натуральная сортировка, а не изменение по-умолчанию с наименования на дату добавления=(
Эту сортировку выполняет MySQL, который не поддерживает "натуральный" порядок. Если длина названий отличается только на длину числа в названии, то можно использовать простой костыль, который решит проблему: Код: ORDER BY LENGTH(sort_column_name), sort_column_name То есть, сначала происходит сортировка по длине, а потом по значению.
Ага, я уже погугли на форуме SQL. Намного ловчее вручную поставить порядок сортировки при добавлении товара, чем жестко изменять запрос в базу, который повесит сайт. Т.к. наименования отличаются не на одну цифру.
При наличии индексов - не повесит. Если вопрос только в количестве цифр, то это не имеет значения, оно будет работать в любом случае. Если же названия в принципе отличаются, например: ТоварА 1 мм ТоварА 20 мм ТоварБ 10 мм А сортировать нужно именно по числам - это уже вообще не относится к натуральному порядку сортировки и тут действительно проще порядок вручную задать.