Рекомендуемые сообщения

Andrey15    0

Приветствую, столкнулся с такой проблемой при сортировки по имени товара по имени отображает товары не правильно.
Есть список:
Доска 16см с 1 пропилом 

Доска 60см с 1 пропилом 

Доска 70см с 1 пропилом 

Доска 90см с 2 пропилами

Доска 100см с 1 пропилом 

Доска 100см с 2 пропилами

Доска 120см с 1 пропилом 

Доска 120см с 2 пропилами

 

При стандартной сортировке выдает 

Доска 100см с 1 пропилом 

Доска 100см с 2 пропилами

Доска 120см с 1 пропилом 

Доска 120см с 2 пропилами

Доска 16см с 1 пропилом 

Доска 60см с 1 пропилом 

Доска 70см с 1 пропилом 

Доска 90см с 2 пропилами

 

При использовании ORDER BY (pd.name+0)  ASC выдает 

Доска 16см с 1 пропилом 

Доска 60см с 1 пропилом 

Доска 70см с 1 пропилом 

Доска 100см с 1 пропилом 

Доска 120см с 1 пропилом 

Доска 90см с 2 пропилами

Доска 100см с 2 пропилами

Доска 120см с 2 пропилами

 

А нужно достичь такого 

Доска 16см с 1 пропилом 

Доска 60см с 1 пропилом 

Доска 70см с 1 пропилом 

Доска 90см с 2 пропилами

Доска 100см с 1 пропилом 

Доска 100см с 2 пропилами

Доска 120см с 1 пропилом 

Доска 120см с 2 пропилами

Кто сталкивался с таким ?

Изменено пользователем Andrey15

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
mpn2005    337

Тут можно только чуть схитрить.

 

Например максимальный разме р занимает 3 цифры.

Тогд там где две цивры, перед размером вставляем линий пробел.

 

Например:

Доска 16см с 1 пропилом  - перед 16 ставим два пробела

Доска 100см с 1 пропилом   - перед 100 только один пробел

 

Правда придётся потратить время на правку названий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
chukcha    979

пробуйте так

 

order by cast(name as unsigned)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
mpn2005    337

Это даст сортировку только по первой цифре.

Плюс, сломет сортировку по алфавиту по первому слову.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Andrey15    0
28 минут назад, chukcha сказал:

пробуйте так

 

order by cast(name as unsigned)

Выдает 

Доска 16см с 1 пропилом 

Доска 60см с 1 пропилом 

Доска 70см с 1 пропилом 

Доска 100см с 1 пропилом 

Доска 120см с 1 пропилом 

Доска 90см с 2 пропилами

Доска 100см с 2 пропилами

Доска 120см с 2 пропилами

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Andrey15    0
1 час назад, mpn2005 сказал:

Тут можно только чуть схитрить.

 

Например максимальный разме р занимает 3 цифры.

Тогд там где две цивры, перед размером вставляем линий пробел.

 

Например:

Доска 16см с 1 пропилом  - перед 16 ставим два пробела

Доска 100см с 1 пропилом   - перед 100 только один пробел

 

Правда придётся потратить время на правку зазваний.

Выдает:

Доска 16см с 1 пропилом 

Доска 60см с 1 пропилом 

Доска 70см с 1 пропилом 

Доска 90см с 2 пропилами

Доска 100см с 1 пропилом 

Доска 100см с 2 пропилами

Доска 120см с 1 пропилом 

Доска 120см с 2 пропилами

По моему пока наиболее подходящий вариант.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу