При выполнении запроса из под php, появляется следующая ошибка:
SELECT list is not in GROUP BY clause and contains nonaggregated column 'rusintech.pt.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Array
Сам запрос следующий:
UPDATE product_tara_test AS p
INNER JOIN (
SELECT id FROM product_tara_test pt
WHERE price IS NOT NULL AND price > 0 AND id_stockroom = ?
GROUP BY id_product) as B
ON p.id = B.id
SET
p.tara = '',
p.meter = '',
p.id_city = NULL,
p.type_unit = '',
p.weight_b = '',
p.weight_n = '',
p.comment = '',
p.reserve = '',
p.year_kpp = '',
p.provide = '',
p.sutured = '',
p.characteristics = '',
p.date_export = '',
p.price_nds = NULL,
p.active = 1
Почему то запрос не работает из под php, если я через редактор MySQL выполняю запрос, запрос проходит без ошибок. На локальном компьютере запрос так же работает успешно. Но на сервере появляется ошибка и именно если он выполняется через php
На сервере версии:
PHP 7.1.4
MySQL 5.7.18-ndb-7.6.2
На локальной машине:
PHP 7.0.7
5.7.13-log
Методы исправления проблемы:
Выяснить, одному значению product_tara_test.id_product соответствует строго одно значение product_tara_test.id или несколько (не по факту, а на уровне структуры таблицы и подсистемы целостности данных). Если одному - из SELECT-a убрать GROUP BY и добавить DISTINCT. Если НЕ одному - обернуть id в групповую функцию (например, MIN(id)). Наилучшее решение.
Установить на уровне сессии (вообще или только для этого запроса) значение ONLY_FULL_GROUP_BY в состояние OFF. Решение очень среднего качества.
Установить в OFF:
SET SESSION sql_mode = REPLACE(@@SESSION.sql_mode, 'ONLY_FULL_GROUP_BY', '');
Установить в ON:
SET SESSION sql_mode = CASE FIND_IN_SET('ONLY_FULL_GROUP_BY',@@SESSION.sql_mode)
WHEN 0 THEN CONCAT('ONLY_FULL_GROUP_BY,',@@SESSION.sql_mode)
ELSE @@SESSION.sql_mode
END;
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Скопировал сайт с хостинга на локальный сервер openServer и столкнулся с проблемой, что сервер при ajax запросе к файлу, отдает его текст как естьТ
есть скрипт /usr/local/vesta/bin/v-add-user из под sudo работаетего права