При переносе сайта столкнулся с ошибкой из-за которой не работают списки товаров.
Query Error 3065: Expression #2 of ORDER BY clause is not in SELECT list, references column 'snabs.sp1.sort' which is not in SELECT list; this is incompatible with DISTINCT
Query: SELECT DISTINCT p.*,p.id,(p.count > 0 || p.count IS NULL) AS in_stock FROM shop_product p JOIN shop_set_products sp1 ON p.id = sp1.product_id WHERE p.status = 1 AND sp1.set_id = 'hits' ORDER BY in_stock DESC,sp1.sort ASC LIMIT 500
Эта ошибка возникает именно на последней версии MySql 5.7.12-0ubuntu1
Временно помогает это:
mysql -u root -p
mysql> SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode, "ONLY_FULL_GROUP_BY,", ""));
mysql> SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode, "ONLY_FULL_GROUP_BY,", ""));
Просьба исправить ошибку в запросе, для совместимости с новой версией MySql
7 комментариев
Попробуйте добавить в файл wa-config/db.php строку с указанием режима работы SQL:
Да это помогло!
Вот спасибо! Всю ночь разбирался, а дело было в этой строчке. Фуххх
Помогло, спасибо большое.
помогло, спасибо
Помогло, спасибо. Еще разъяснили бы из-за чего не работало?
Тема раскрыта во множестве сторонних источников. Вот, например, статья от 2013 года https://habr.com/ru/post/166411/