creatorua Опубліковано: 31 січня 2014 Share Опубліковано: 31 січня 2014 Помогите с настройкой сортировки товаров. Сейчас товары сортируются по модели от Я до А получается PL16 PL15 PL14............ Товары с наименованием модели PL102 PL101 PL100 сортируются не корректно получается порядок PL12 PL102 PL101 PL100 PL10 PL9 до 99 все нормально было пока не пошли товары с моделью номером выше 99. В базе данных в структуре у строки model стоит varchar символьное значение, может нужно какое другое установить или это в php коде правится? Не пойму как, что и где настроить на желаемое отображение. Надіслати Поділитися на інших сайтах More sharing options...
freelancer Опубліковано: 31 січня 2014 Share Опубліковано: 31 січня 2014 SELECT *, CONVERT(SUBSTRING(model,2),UNSIGNED INTEGER) AS num FROM product ORDER BY num; Надіслати Поділитися на інших сайтах More sharing options... creatorua Опубліковано: 31 січня 2014 Автор Share Опубліковано: 31 січня 2014 SELECT *, CONVERT(SUBSTRING(model,2),UNSIGNED INTEGER) AS num FROM product ORDER BY num; Данный запрос результата не дал Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 31 січня 2014 Share Опубліковано: 31 січня 2014 на примере демо товаров order by model Товар 1Товар 11Товар 14Товар 15Товар 16Товар 17Товар 18Товар 19Товар 2Товар 20 способ выше, хотя можно упростить CONVERT(model, UNSIGNED INTEGER) Товар 1Товар 2Товар 3Товар 4Товар 5Товар 6Товар 7Товар 8Товар 9Товар 11 Надіслати Поділитися на інших сайтах More sharing options... 4 weeks later... turtiks Опубліковано: 27 лютого 2014 Share Опубліковано: 27 лютого 2014 Столкнулся с той же проблемой, запрос , результат не дал к сожалению...версия 1.5.4.1 товарищ фрилансер, помогите советом SELECT *, CONVERT(SUBSTRING(model,2),UNSIGNED INTEGER) AS num FROM product ORDER BY num; Надіслати Поділитися на інших сайтах More sharing options... 2 months later... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 У меня что-то тоже не работает этот способ. MySQL 5.5.34. Ни `CAST()`, ни `CONVERT()`, ни `*1`. Ни с DECIMAL(10,2), ни UNSIGNED. Ни с русскими, ни с латинскими названиями товаров. Во всех случаях результат преобразований оказывается равен 0 (0.00). Я поле `name` использовал, а не `model`, но это несущественно. Всякие COLLATE и CHARSET - обычные для опенкарт, на его базе пробовал запросы. Пока не подсунешь функции преобразования что-то вроде `substring_index(name,' ',-1)`, т.е. строку, начинающуюся с цифр, кроме нуля в столбце с конвертированными названиями товаров только нули. В общем, любые символы перед цифрами -- мешают, а не отбрасываются. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 хотя можно упростить CONVERT(model, UNSIGNED INTEGER) Надіслати Поділитися на інших сайтах More sharing options... ravilr Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 order by model+0 Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 (змінено) хотя можно упростить CONVERT(model, UNSIGNED INTEGER) Повторю, не работает: Ни `CAST()`, ни `CONVERT()`, ни `*1`. Ни с DECIMAL(10,2), ни UNSIGNED. Я с этим около часа экспериментировал, наигрался по самые гланды. Итоговый вывод: буквы таки мешают. Хотя мне казалось, что всё кроме чисел должно попросту игнорироваться в результате этих преобразований. Но не игнорируется, а приводит к результату "0" и ничего не сортирует, разумеется. order by model+0 Подозреваю. что "+0" ничем не лучше "*1" (см. выше), но ок, попробую на всякий случай. UPD: да, ничем не лучше. Змінено 12 травня 2014 користувачем rb2 добавил картинок Надіслати Поділитися на інших сайтах More sharing options... ravilr Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 Подозреваю. что "+0" ничем не лучше "*1" (см. выше), но ок, попробую на всякий случай. Извиняюсь, не увидел. Но у меня, что *1, что +0 работает. Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 И у @freelancer, похоже, работает. Вот я и пытаюсь понять, что именно в версиях или настройках может на это влиять. Потому что я в этом топике явно не первый, у кого не работает. Версию MySQL писал (5.5.34, если не ошибаюсь). Остальное - обычная демо-база от опенкарт 1.5.6 (MyISAM, collation=utf8_general_ci), куда добавил товаров с русскими символами (товар 1, 2, 14). Надіслати Поділитися на інших сайтах More sharing options... ravilr Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 И у @freelancer, похоже, работает. Еще раз посмотрел. У меня совпали для запроса идеальные условия сортировки. Выше указанное мной решение естественно не работает ((( Думаю в данной ситуации можно просто по извращаться с удалением символов, что бы оставить только цифры. Или, если известно кол-во цифр в окончании, то просто копирование его. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 (змінено) try this SELECT name, CONVERT(SUBSTRING_INDEX(name,' ',-1),UNSIGNED INTEGER) AS num FROM oc_product_description ORDER BY num desc я так понимаю, mysql при конвертации строки в число берет символы до первой не цифры Змінено 12 травня 2014 користувачем freelancer Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 try thisЭ-э-э... Мои сообщения вообще видно? :)Я же писал, что это единственное найденное решение. Но для реальной жизни непригодное, к сожалению, т.к. нет никакой гарантии, что искомые цифры будут в конце строки. Или что не будет буквенного префикса (как у топик-стартера, кстати говоря). В итоге я вижу -- и у @ravilr, и у @freelancer всё точно так же, как у меня работает. В смысле не работает. У @ravilr просто набор тестовых данных неудачный, а у @freelancer в последнем сообщении топика видно, что "HP LP3065" стабильно транслируется в ноль, а значит написанное выше на примере демо товаров order by model ... способ выше, хотя можно упростить CONVERT(model, UNSIGNED INTEGER) Товар 1 ... Товар 9 Товар 10 просто-напросто не тестировалось на тех данных (Товар 1 - Товар 20), а было написано исходя из предположений о работе этой функии. Увы. Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 ravilr сказал(а) 12 Май 2014 - 8:12 PM: Думаю в данной ситуации можно просто по извращаться с удалением символов, что бы оставить только цифры. Или, если известно кол-во цифр в окончании, то просто копирование его. Это да. Но это уже означает, что сортировку придётся выносить из MySQL и делать её средствами PHP. Та ещё радость. Боюсь, тут уже простого ответа на вопрос "как исправить сортировку в опенкарт", не получится - и дописать придётся немало, и продумать последствия изменений. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 rb2, тогда regexp. конечное решение зависит от набора данных. Надіслати Поділитися на інших сайтах More sharing options... ravilr Опубліковано: 13 травня 2014 Share Опубліковано: 13 травня 2014 Это да. Но это уже означает, что сортировку придётся выносить из MySQL и делать её средствами PHP. я имел ввиду строковые функции mysql Если знаем кол-во цифр справа, то по ним и сортируем. select * from oc_product order by right(model,2) Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 13 травня 2014 Share Опубліковано: 13 травня 2014 При convert и кучи товаров этот запрос будет очень тормозной, так как ему придется перебрать все товары. Это скорее костыль для сайтов у которых мало товаров и мало посетителей. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Сортировка товаров 1 10 100 Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
creatorua Опубліковано: 31 січня 2014 Автор Share Опубліковано: 31 січня 2014 SELECT *, CONVERT(SUBSTRING(model,2),UNSIGNED INTEGER) AS num FROM product ORDER BY num; Данный запрос результата не дал Надіслати Поділитися на інших сайтах More sharing options...
freelancer Опубліковано: 31 січня 2014 Share Опубліковано: 31 січня 2014 на примере демо товаров order by model Товар 1Товар 11Товар 14Товар 15Товар 16Товар 17Товар 18Товар 19Товар 2Товар 20 способ выше, хотя можно упростить CONVERT(model, UNSIGNED INTEGER) Товар 1Товар 2Товар 3Товар 4Товар 5Товар 6Товар 7Товар 8Товар 9Товар 11 Надіслати Поділитися на інших сайтах More sharing options... 4 weeks later... turtiks Опубліковано: 27 лютого 2014 Share Опубліковано: 27 лютого 2014 Столкнулся с той же проблемой, запрос , результат не дал к сожалению...версия 1.5.4.1 товарищ фрилансер, помогите советом SELECT *, CONVERT(SUBSTRING(model,2),UNSIGNED INTEGER) AS num FROM product ORDER BY num; Надіслати Поділитися на інших сайтах More sharing options... 2 months later... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 У меня что-то тоже не работает этот способ. MySQL 5.5.34. Ни `CAST()`, ни `CONVERT()`, ни `*1`. Ни с DECIMAL(10,2), ни UNSIGNED. Ни с русскими, ни с латинскими названиями товаров. Во всех случаях результат преобразований оказывается равен 0 (0.00). Я поле `name` использовал, а не `model`, но это несущественно. Всякие COLLATE и CHARSET - обычные для опенкарт, на его базе пробовал запросы. Пока не подсунешь функции преобразования что-то вроде `substring_index(name,' ',-1)`, т.е. строку, начинающуюся с цифр, кроме нуля в столбце с конвертированными названиями товаров только нули. В общем, любые символы перед цифрами -- мешают, а не отбрасываются. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 хотя можно упростить CONVERT(model, UNSIGNED INTEGER) Надіслати Поділитися на інших сайтах More sharing options... ravilr Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 order by model+0 Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 (змінено) хотя можно упростить CONVERT(model, UNSIGNED INTEGER) Повторю, не работает: Ни `CAST()`, ни `CONVERT()`, ни `*1`. Ни с DECIMAL(10,2), ни UNSIGNED. Я с этим около часа экспериментировал, наигрался по самые гланды. Итоговый вывод: буквы таки мешают. Хотя мне казалось, что всё кроме чисел должно попросту игнорироваться в результате этих преобразований. Но не игнорируется, а приводит к результату "0" и ничего не сортирует, разумеется. order by model+0 Подозреваю. что "+0" ничем не лучше "*1" (см. выше), но ок, попробую на всякий случай. UPD: да, ничем не лучше. Змінено 12 травня 2014 користувачем rb2 добавил картинок Надіслати Поділитися на інших сайтах More sharing options... ravilr Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 Подозреваю. что "+0" ничем не лучше "*1" (см. выше), но ок, попробую на всякий случай. Извиняюсь, не увидел. Но у меня, что *1, что +0 работает. Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 И у @freelancer, похоже, работает. Вот я и пытаюсь понять, что именно в версиях или настройках может на это влиять. Потому что я в этом топике явно не первый, у кого не работает. Версию MySQL писал (5.5.34, если не ошибаюсь). Остальное - обычная демо-база от опенкарт 1.5.6 (MyISAM, collation=utf8_general_ci), куда добавил товаров с русскими символами (товар 1, 2, 14). Надіслати Поділитися на інших сайтах More sharing options... ravilr Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 И у @freelancer, похоже, работает. Еще раз посмотрел. У меня совпали для запроса идеальные условия сортировки. Выше указанное мной решение естественно не работает ((( Думаю в данной ситуации можно просто по извращаться с удалением символов, что бы оставить только цифры. Или, если известно кол-во цифр в окончании, то просто копирование его. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 (змінено) try this SELECT name, CONVERT(SUBSTRING_INDEX(name,' ',-1),UNSIGNED INTEGER) AS num FROM oc_product_description ORDER BY num desc я так понимаю, mysql при конвертации строки в число берет символы до первой не цифры Змінено 12 травня 2014 користувачем freelancer Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 try thisЭ-э-э... Мои сообщения вообще видно? :)Я же писал, что это единственное найденное решение. Но для реальной жизни непригодное, к сожалению, т.к. нет никакой гарантии, что искомые цифры будут в конце строки. Или что не будет буквенного префикса (как у топик-стартера, кстати говоря). В итоге я вижу -- и у @ravilr, и у @freelancer всё точно так же, как у меня работает. В смысле не работает. У @ravilr просто набор тестовых данных неудачный, а у @freelancer в последнем сообщении топика видно, что "HP LP3065" стабильно транслируется в ноль, а значит написанное выше на примере демо товаров order by model ... способ выше, хотя можно упростить CONVERT(model, UNSIGNED INTEGER) Товар 1 ... Товар 9 Товар 10 просто-напросто не тестировалось на тех данных (Товар 1 - Товар 20), а было написано исходя из предположений о работе этой функии. Увы. Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 ravilr сказал(а) 12 Май 2014 - 8:12 PM: Думаю в данной ситуации можно просто по извращаться с удалением символов, что бы оставить только цифры. Или, если известно кол-во цифр в окончании, то просто копирование его. Это да. Но это уже означает, что сортировку придётся выносить из MySQL и делать её средствами PHP. Та ещё радость. Боюсь, тут уже простого ответа на вопрос "как исправить сортировку в опенкарт", не получится - и дописать придётся немало, и продумать последствия изменений. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 rb2, тогда regexp. конечное решение зависит от набора данных. Надіслати Поділитися на інших сайтах More sharing options... ravilr Опубліковано: 13 травня 2014 Share Опубліковано: 13 травня 2014 Это да. Но это уже означает, что сортировку придётся выносить из MySQL и делать её средствами PHP. я имел ввиду строковые функции mysql Если знаем кол-во цифр справа, то по ним и сортируем. select * from oc_product order by right(model,2) Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 13 травня 2014 Share Опубліковано: 13 травня 2014 При convert и кучи товаров этот запрос будет очень тормозной, так как ему придется перебрать все товары. Это скорее костыль для сайтов у которых мало товаров и мало посетителей. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Сортировка товаров 1 10 100 Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
turtiks Опубліковано: 27 лютого 2014 Share Опубліковано: 27 лютого 2014 Столкнулся с той же проблемой, запрос , результат не дал к сожалению...версия 1.5.4.1 товарищ фрилансер, помогите советом SELECT *, CONVERT(SUBSTRING(model,2),UNSIGNED INTEGER) AS num FROM product ORDER BY num; Надіслати Поділитися на інших сайтах More sharing options...
rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 У меня что-то тоже не работает этот способ. MySQL 5.5.34. Ни `CAST()`, ни `CONVERT()`, ни `*1`. Ни с DECIMAL(10,2), ни UNSIGNED. Ни с русскими, ни с латинскими названиями товаров. Во всех случаях результат преобразований оказывается равен 0 (0.00). Я поле `name` использовал, а не `model`, но это несущественно. Всякие COLLATE и CHARSET - обычные для опенкарт, на его базе пробовал запросы. Пока не подсунешь функции преобразования что-то вроде `substring_index(name,' ',-1)`, т.е. строку, начинающуюся с цифр, кроме нуля в столбце с конвертированными названиями товаров только нули. В общем, любые символы перед цифрами -- мешают, а не отбрасываются. Надіслати Поділитися на інших сайтах More sharing options...
freelancer Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 хотя можно упростить CONVERT(model, UNSIGNED INTEGER) Надіслати Поділитися на інших сайтах More sharing options... ravilr Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 order by model+0 Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 (змінено) хотя можно упростить CONVERT(model, UNSIGNED INTEGER) Повторю, не работает: Ни `CAST()`, ни `CONVERT()`, ни `*1`. Ни с DECIMAL(10,2), ни UNSIGNED. Я с этим около часа экспериментировал, наигрался по самые гланды. Итоговый вывод: буквы таки мешают. Хотя мне казалось, что всё кроме чисел должно попросту игнорироваться в результате этих преобразований. Но не игнорируется, а приводит к результату "0" и ничего не сортирует, разумеется. order by model+0 Подозреваю. что "+0" ничем не лучше "*1" (см. выше), но ок, попробую на всякий случай. UPD: да, ничем не лучше. Змінено 12 травня 2014 користувачем rb2 добавил картинок Надіслати Поділитися на інших сайтах More sharing options... ravilr Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 Подозреваю. что "+0" ничем не лучше "*1" (см. выше), но ок, попробую на всякий случай. Извиняюсь, не увидел. Но у меня, что *1, что +0 работает. Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 И у @freelancer, похоже, работает. Вот я и пытаюсь понять, что именно в версиях или настройках может на это влиять. Потому что я в этом топике явно не первый, у кого не работает. Версию MySQL писал (5.5.34, если не ошибаюсь). Остальное - обычная демо-база от опенкарт 1.5.6 (MyISAM, collation=utf8_general_ci), куда добавил товаров с русскими символами (товар 1, 2, 14). Надіслати Поділитися на інших сайтах More sharing options... ravilr Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 И у @freelancer, похоже, работает. Еще раз посмотрел. У меня совпали для запроса идеальные условия сортировки. Выше указанное мной решение естественно не работает ((( Думаю в данной ситуации можно просто по извращаться с удалением символов, что бы оставить только цифры. Или, если известно кол-во цифр в окончании, то просто копирование его. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 (змінено) try this SELECT name, CONVERT(SUBSTRING_INDEX(name,' ',-1),UNSIGNED INTEGER) AS num FROM oc_product_description ORDER BY num desc я так понимаю, mysql при конвертации строки в число берет символы до первой не цифры Змінено 12 травня 2014 користувачем freelancer Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 try thisЭ-э-э... Мои сообщения вообще видно? :)Я же писал, что это единственное найденное решение. Но для реальной жизни непригодное, к сожалению, т.к. нет никакой гарантии, что искомые цифры будут в конце строки. Или что не будет буквенного префикса (как у топик-стартера, кстати говоря). В итоге я вижу -- и у @ravilr, и у @freelancer всё точно так же, как у меня работает. В смысле не работает. У @ravilr просто набор тестовых данных неудачный, а у @freelancer в последнем сообщении топика видно, что "HP LP3065" стабильно транслируется в ноль, а значит написанное выше на примере демо товаров order by model ... способ выше, хотя можно упростить CONVERT(model, UNSIGNED INTEGER) Товар 1 ... Товар 9 Товар 10 просто-напросто не тестировалось на тех данных (Товар 1 - Товар 20), а было написано исходя из предположений о работе этой функии. Увы. Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 ravilr сказал(а) 12 Май 2014 - 8:12 PM: Думаю в данной ситуации можно просто по извращаться с удалением символов, что бы оставить только цифры. Или, если известно кол-во цифр в окончании, то просто копирование его. Это да. Но это уже означает, что сортировку придётся выносить из MySQL и делать её средствами PHP. Та ещё радость. Боюсь, тут уже простого ответа на вопрос "как исправить сортировку в опенкарт", не получится - и дописать придётся немало, и продумать последствия изменений. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 rb2, тогда regexp. конечное решение зависит от набора данных. Надіслати Поділитися на інших сайтах More sharing options... ravilr Опубліковано: 13 травня 2014 Share Опубліковано: 13 травня 2014 Это да. Но это уже означает, что сортировку придётся выносить из MySQL и делать её средствами PHP. я имел ввиду строковые функции mysql Если знаем кол-во цифр справа, то по ним и сортируем. select * from oc_product order by right(model,2) Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 13 травня 2014 Share Опубліковано: 13 травня 2014 При convert и кучи товаров этот запрос будет очень тормозной, так как ему придется перебрать все товары. Это скорее костыль для сайтов у которых мало товаров и мало посетителей. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Сортировка товаров 1 10 100 Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
ravilr Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 order by model+0 Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 (змінено) хотя можно упростить CONVERT(model, UNSIGNED INTEGER) Повторю, не работает: Ни `CAST()`, ни `CONVERT()`, ни `*1`. Ни с DECIMAL(10,2), ни UNSIGNED. Я с этим около часа экспериментировал, наигрался по самые гланды. Итоговый вывод: буквы таки мешают. Хотя мне казалось, что всё кроме чисел должно попросту игнорироваться в результате этих преобразований. Но не игнорируется, а приводит к результату "0" и ничего не сортирует, разумеется. order by model+0 Подозреваю. что "+0" ничем не лучше "*1" (см. выше), но ок, попробую на всякий случай. UPD: да, ничем не лучше. Змінено 12 травня 2014 користувачем rb2 добавил картинок Надіслати Поділитися на інших сайтах More sharing options... ravilr Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 Подозреваю. что "+0" ничем не лучше "*1" (см. выше), но ок, попробую на всякий случай. Извиняюсь, не увидел. Но у меня, что *1, что +0 работает. Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 И у @freelancer, похоже, работает. Вот я и пытаюсь понять, что именно в версиях или настройках может на это влиять. Потому что я в этом топике явно не первый, у кого не работает. Версию MySQL писал (5.5.34, если не ошибаюсь). Остальное - обычная демо-база от опенкарт 1.5.6 (MyISAM, collation=utf8_general_ci), куда добавил товаров с русскими символами (товар 1, 2, 14). Надіслати Поділитися на інших сайтах More sharing options... ravilr Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 И у @freelancer, похоже, работает. Еще раз посмотрел. У меня совпали для запроса идеальные условия сортировки. Выше указанное мной решение естественно не работает ((( Думаю в данной ситуации можно просто по извращаться с удалением символов, что бы оставить только цифры. Или, если известно кол-во цифр в окончании, то просто копирование его. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 (змінено) try this SELECT name, CONVERT(SUBSTRING_INDEX(name,' ',-1),UNSIGNED INTEGER) AS num FROM oc_product_description ORDER BY num desc я так понимаю, mysql при конвертации строки в число берет символы до первой не цифры Змінено 12 травня 2014 користувачем freelancer Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 try thisЭ-э-э... Мои сообщения вообще видно? :)Я же писал, что это единственное найденное решение. Но для реальной жизни непригодное, к сожалению, т.к. нет никакой гарантии, что искомые цифры будут в конце строки. Или что не будет буквенного префикса (как у топик-стартера, кстати говоря). В итоге я вижу -- и у @ravilr, и у @freelancer всё точно так же, как у меня работает. В смысле не работает. У @ravilr просто набор тестовых данных неудачный, а у @freelancer в последнем сообщении топика видно, что "HP LP3065" стабильно транслируется в ноль, а значит написанное выше на примере демо товаров order by model ... способ выше, хотя можно упростить CONVERT(model, UNSIGNED INTEGER) Товар 1 ... Товар 9 Товар 10 просто-напросто не тестировалось на тех данных (Товар 1 - Товар 20), а было написано исходя из предположений о работе этой функии. Увы. Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 ravilr сказал(а) 12 Май 2014 - 8:12 PM: Думаю в данной ситуации можно просто по извращаться с удалением символов, что бы оставить только цифры. Или, если известно кол-во цифр в окончании, то просто копирование его. Это да. Но это уже означает, что сортировку придётся выносить из MySQL и делать её средствами PHP. Та ещё радость. Боюсь, тут уже простого ответа на вопрос "как исправить сортировку в опенкарт", не получится - и дописать придётся немало, и продумать последствия изменений. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 rb2, тогда regexp. конечное решение зависит от набора данных. Надіслати Поділитися на інших сайтах More sharing options... ravilr Опубліковано: 13 травня 2014 Share Опубліковано: 13 травня 2014 Это да. Но это уже означает, что сортировку придётся выносить из MySQL и делать её средствами PHP. я имел ввиду строковые функции mysql Если знаем кол-во цифр справа, то по ним и сортируем. select * from oc_product order by right(model,2) Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 13 травня 2014 Share Опубліковано: 13 травня 2014 При convert и кучи товаров этот запрос будет очень тормозной, так как ему придется перебрать все товары. Это скорее костыль для сайтов у которых мало товаров и мало посетителей. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Сортировка товаров 1 10 100 Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 (змінено) хотя можно упростить CONVERT(model, UNSIGNED INTEGER) Повторю, не работает: Ни `CAST()`, ни `CONVERT()`, ни `*1`. Ни с DECIMAL(10,2), ни UNSIGNED. Я с этим около часа экспериментировал, наигрался по самые гланды. Итоговый вывод: буквы таки мешают. Хотя мне казалось, что всё кроме чисел должно попросту игнорироваться в результате этих преобразований. Но не игнорируется, а приводит к результату "0" и ничего не сортирует, разумеется. order by model+0 Подозреваю. что "+0" ничем не лучше "*1" (см. выше), но ок, попробую на всякий случай. UPD: да, ничем не лучше. Змінено 12 травня 2014 користувачем rb2 добавил картинок Надіслати Поділитися на інших сайтах More sharing options...
ravilr Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 Подозреваю. что "+0" ничем не лучше "*1" (см. выше), но ок, попробую на всякий случай. Извиняюсь, не увидел. Но у меня, что *1, что +0 работает. Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 И у @freelancer, похоже, работает. Вот я и пытаюсь понять, что именно в версиях или настройках может на это влиять. Потому что я в этом топике явно не первый, у кого не работает. Версию MySQL писал (5.5.34, если не ошибаюсь). Остальное - обычная демо-база от опенкарт 1.5.6 (MyISAM, collation=utf8_general_ci), куда добавил товаров с русскими символами (товар 1, 2, 14). Надіслати Поділитися на інших сайтах More sharing options... ravilr Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 И у @freelancer, похоже, работает. Еще раз посмотрел. У меня совпали для запроса идеальные условия сортировки. Выше указанное мной решение естественно не работает ((( Думаю в данной ситуации можно просто по извращаться с удалением символов, что бы оставить только цифры. Или, если известно кол-во цифр в окончании, то просто копирование его. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 (змінено) try this SELECT name, CONVERT(SUBSTRING_INDEX(name,' ',-1),UNSIGNED INTEGER) AS num FROM oc_product_description ORDER BY num desc я так понимаю, mysql при конвертации строки в число берет символы до первой не цифры Змінено 12 травня 2014 користувачем freelancer Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 try thisЭ-э-э... Мои сообщения вообще видно? :)Я же писал, что это единственное найденное решение. Но для реальной жизни непригодное, к сожалению, т.к. нет никакой гарантии, что искомые цифры будут в конце строки. Или что не будет буквенного префикса (как у топик-стартера, кстати говоря). В итоге я вижу -- и у @ravilr, и у @freelancer всё точно так же, как у меня работает. В смысле не работает. У @ravilr просто набор тестовых данных неудачный, а у @freelancer в последнем сообщении топика видно, что "HP LP3065" стабильно транслируется в ноль, а значит написанное выше на примере демо товаров order by model ... способ выше, хотя можно упростить CONVERT(model, UNSIGNED INTEGER) Товар 1 ... Товар 9 Товар 10 просто-напросто не тестировалось на тех данных (Товар 1 - Товар 20), а было написано исходя из предположений о работе этой функии. Увы. Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 ravilr сказал(а) 12 Май 2014 - 8:12 PM: Думаю в данной ситуации можно просто по извращаться с удалением символов, что бы оставить только цифры. Или, если известно кол-во цифр в окончании, то просто копирование его. Это да. Но это уже означает, что сортировку придётся выносить из MySQL и делать её средствами PHP. Та ещё радость. Боюсь, тут уже простого ответа на вопрос "как исправить сортировку в опенкарт", не получится - и дописать придётся немало, и продумать последствия изменений. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 rb2, тогда regexp. конечное решение зависит от набора данных. Надіслати Поділитися на інших сайтах More sharing options... ravilr Опубліковано: 13 травня 2014 Share Опубліковано: 13 травня 2014 Это да. Но это уже означает, что сортировку придётся выносить из MySQL и делать её средствами PHP. я имел ввиду строковые функции mysql Если знаем кол-во цифр справа, то по ним и сортируем. select * from oc_product order by right(model,2) Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 13 травня 2014 Share Опубліковано: 13 травня 2014 При convert и кучи товаров этот запрос будет очень тормозной, так как ему придется перебрать все товары. Это скорее костыль для сайтов у которых мало товаров и мало посетителей. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Сортировка товаров 1 10 100 Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 И у @freelancer, похоже, работает. Вот я и пытаюсь понять, что именно в версиях или настройках может на это влиять. Потому что я в этом топике явно не первый, у кого не работает. Версию MySQL писал (5.5.34, если не ошибаюсь). Остальное - обычная демо-база от опенкарт 1.5.6 (MyISAM, collation=utf8_general_ci), куда добавил товаров с русскими символами (товар 1, 2, 14). Надіслати Поділитися на інших сайтах More sharing options...
ravilr Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 И у @freelancer, похоже, работает. Еще раз посмотрел. У меня совпали для запроса идеальные условия сортировки. Выше указанное мной решение естественно не работает ((( Думаю в данной ситуации можно просто по извращаться с удалением символов, что бы оставить только цифры. Или, если известно кол-во цифр в окончании, то просто копирование его. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 (змінено) try this SELECT name, CONVERT(SUBSTRING_INDEX(name,' ',-1),UNSIGNED INTEGER) AS num FROM oc_product_description ORDER BY num desc я так понимаю, mysql при конвертации строки в число берет символы до первой не цифры Змінено 12 травня 2014 користувачем freelancer Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 try thisЭ-э-э... Мои сообщения вообще видно? :)Я же писал, что это единственное найденное решение. Но для реальной жизни непригодное, к сожалению, т.к. нет никакой гарантии, что искомые цифры будут в конце строки. Или что не будет буквенного префикса (как у топик-стартера, кстати говоря). В итоге я вижу -- и у @ravilr, и у @freelancer всё точно так же, как у меня работает. В смысле не работает. У @ravilr просто набор тестовых данных неудачный, а у @freelancer в последнем сообщении топика видно, что "HP LP3065" стабильно транслируется в ноль, а значит написанное выше на примере демо товаров order by model ... способ выше, хотя можно упростить CONVERT(model, UNSIGNED INTEGER) Товар 1 ... Товар 9 Товар 10 просто-напросто не тестировалось на тех данных (Товар 1 - Товар 20), а было написано исходя из предположений о работе этой функии. Увы. Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 ravilr сказал(а) 12 Май 2014 - 8:12 PM: Думаю в данной ситуации можно просто по извращаться с удалением символов, что бы оставить только цифры. Или, если известно кол-во цифр в окончании, то просто копирование его. Это да. Но это уже означает, что сортировку придётся выносить из MySQL и делать её средствами PHP. Та ещё радость. Боюсь, тут уже простого ответа на вопрос "как исправить сортировку в опенкарт", не получится - и дописать придётся немало, и продумать последствия изменений. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 rb2, тогда regexp. конечное решение зависит от набора данных. Надіслати Поділитися на інших сайтах More sharing options... ravilr Опубліковано: 13 травня 2014 Share Опубліковано: 13 травня 2014 Это да. Но это уже означает, что сортировку придётся выносить из MySQL и делать её средствами PHP. я имел ввиду строковые функции mysql Если знаем кол-во цифр справа, то по ним и сортируем. select * from oc_product order by right(model,2) Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 13 травня 2014 Share Опубліковано: 13 травня 2014 При convert и кучи товаров этот запрос будет очень тормозной, так как ему придется перебрать все товары. Это скорее костыль для сайтов у которых мало товаров и мало посетителей. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Сортировка товаров 1 10 100 Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
freelancer Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 (змінено) try this SELECT name, CONVERT(SUBSTRING_INDEX(name,' ',-1),UNSIGNED INTEGER) AS num FROM oc_product_description ORDER BY num desc я так понимаю, mysql при конвертации строки в число берет символы до первой не цифры Змінено 12 травня 2014 користувачем freelancer Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 try thisЭ-э-э... Мои сообщения вообще видно? :)Я же писал, что это единственное найденное решение. Но для реальной жизни непригодное, к сожалению, т.к. нет никакой гарантии, что искомые цифры будут в конце строки. Или что не будет буквенного префикса (как у топик-стартера, кстати говоря). В итоге я вижу -- и у @ravilr, и у @freelancer всё точно так же, как у меня работает. В смысле не работает. У @ravilr просто набор тестовых данных неудачный, а у @freelancer в последнем сообщении топика видно, что "HP LP3065" стабильно транслируется в ноль, а значит написанное выше на примере демо товаров order by model ... способ выше, хотя можно упростить CONVERT(model, UNSIGNED INTEGER) Товар 1 ... Товар 9 Товар 10 просто-напросто не тестировалось на тех данных (Товар 1 - Товар 20), а было написано исходя из предположений о работе этой функии. Увы. Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 ravilr сказал(а) 12 Май 2014 - 8:12 PM: Думаю в данной ситуации можно просто по извращаться с удалением символов, что бы оставить только цифры. Или, если известно кол-во цифр в окончании, то просто копирование его. Это да. Но это уже означает, что сортировку придётся выносить из MySQL и делать её средствами PHP. Та ещё радость. Боюсь, тут уже простого ответа на вопрос "как исправить сортировку в опенкарт", не получится - и дописать придётся немало, и продумать последствия изменений. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 rb2, тогда regexp. конечное решение зависит от набора данных. Надіслати Поділитися на інших сайтах More sharing options... ravilr Опубліковано: 13 травня 2014 Share Опубліковано: 13 травня 2014 Это да. Но это уже означает, что сортировку придётся выносить из MySQL и делать её средствами PHP. я имел ввиду строковые функции mysql Если знаем кол-во цифр справа, то по ним и сортируем. select * from oc_product order by right(model,2) Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 13 травня 2014 Share Опубліковано: 13 травня 2014 При convert и кучи товаров этот запрос будет очень тормозной, так как ему придется перебрать все товары. Это скорее костыль для сайтов у которых мало товаров и мало посетителей. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Сортировка товаров 1 10 100 Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 try thisЭ-э-э... Мои сообщения вообще видно? :)Я же писал, что это единственное найденное решение. Но для реальной жизни непригодное, к сожалению, т.к. нет никакой гарантии, что искомые цифры будут в конце строки. Или что не будет буквенного префикса (как у топик-стартера, кстати говоря). В итоге я вижу -- и у @ravilr, и у @freelancer всё точно так же, как у меня работает. В смысле не работает. У @ravilr просто набор тестовых данных неудачный, а у @freelancer в последнем сообщении топика видно, что "HP LP3065" стабильно транслируется в ноль, а значит написанное выше на примере демо товаров order by model ... способ выше, хотя можно упростить CONVERT(model, UNSIGNED INTEGER) Товар 1 ... Товар 9 Товар 10 просто-напросто не тестировалось на тех данных (Товар 1 - Товар 20), а было написано исходя из предположений о работе этой функии. Увы. Надіслати Поділитися на інших сайтах More sharing options...
rb2 Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 ravilr сказал(а) 12 Май 2014 - 8:12 PM: Думаю в данной ситуации можно просто по извращаться с удалением символов, что бы оставить только цифры. Или, если известно кол-во цифр в окончании, то просто копирование его. Это да. Но это уже означает, что сортировку придётся выносить из MySQL и делать её средствами PHP. Та ещё радость. Боюсь, тут уже простого ответа на вопрос "как исправить сортировку в опенкарт", не получится - и дописать придётся немало, и продумать последствия изменений. Надіслати Поділитися на інших сайтах More sharing options...
freelancer Опубліковано: 12 травня 2014 Share Опубліковано: 12 травня 2014 rb2, тогда regexp. конечное решение зависит от набора данных. Надіслати Поділитися на інших сайтах More sharing options... ravilr Опубліковано: 13 травня 2014 Share Опубліковано: 13 травня 2014 Это да. Но это уже означает, что сортировку придётся выносить из MySQL и делать её средствами PHP. я имел ввиду строковые функции mysql Если знаем кол-во цифр справа, то по ним и сортируем. select * from oc_product order by right(model,2) Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 13 травня 2014 Share Опубліковано: 13 травня 2014 При convert и кучи товаров этот запрос будет очень тормозной, так как ему придется перебрать все товары. Это скорее костыль для сайтов у которых мало товаров и мало посетителей. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Сортировка товаров 1 10 100
ravilr Опубліковано: 13 травня 2014 Share Опубліковано: 13 травня 2014 Это да. Но это уже означает, что сортировку придётся выносить из MySQL и делать её средствами PHP. я имел ввиду строковые функции mysql Если знаем кол-во цифр справа, то по ним и сортируем. select * from oc_product order by right(model,2) Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 13 травня 2014 Share Опубліковано: 13 травня 2014 При convert и кучи товаров этот запрос будет очень тормозной, так как ему придется перебрать все товары. Это скорее костыль для сайтов у которых мало товаров и мало посетителей. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
markimax Опубліковано: 13 травня 2014 Share Опубліковано: 13 травня 2014 При convert и кучи товаров этот запрос будет очень тормозной, так как ему придется перебрать все товары. Это скорее костыль для сайтов у которых мало товаров и мало посетителей. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
Recommended Posts