Как упорядочить товары по числовым значениям атрибута

цифровые значения не сортируются

[16 июля 2019 г.]    Российская сборка Magento 2.52.2
Magento 2: модули и услуги
magereport.com: составление перечня необходимых для установки заплаток SUPEE
#1 olesolo
  • Группа: Пользователь
  • Сообщений: 10
  • Регистрация: 14.03.2011

27.04.2011 12:55

Столкнулся с проблемой.
Есть несколько кастомных атрибутов (Type Textfield), по которым можно сортировать продукты (Sort by)
Сортировка происходит сейчас так 1, 11, 111, 2, 23, 3 ...
Как сделать нормальную сортировку? 1, 2, 3, 11, 23, 111 ...
Пробывал менять тип поля через базу(frontend_input) на Price, не помогло. Если меняю в базе параметр (backend_type) с varchar на intr, то значения атрибута вообще не отображаются. При этом конечно же переиндексовывал значения.

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

27.04.2011 13:06

Используйте выражение CAST при выборке данных из базы данных.
В вашем конкретном случае нужно:
(CAST column_name as decimal)

или
(CAST column_name as signed integer)

или
(CAST column_name as unsigned integer)


тогда команда ORDER BY упорядочит данные не лексикографически, а арифметически.

#3 olesolo
  • Группа: Пользователь
  • Сообщений: 10
  • Регистрация: 14.03.2011

27.04.2011 13:12

Дим, спасибо за быстрый ответ!
ПРошу прощения, но я не силен в программировании. Где именно мне нужно использовать CAST?
В каком конкретно файле или примерно в какой стороне искать?

#4 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

27.04.2011 13:14

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

#5 olesolo
  • Группа: Пользователь
  • Сообщений: 10
  • Регистрация: 14.03.2011

27.04.2011 13:41

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

Поделиться темой: