Страницы

Поиск по вопросам

пятница, 24 января 2020 г.

MySQL ошибка 3065

#php #mysql #база_данных


Имею ошибку MySQL 3065. 


  Query Error Query: 
      SELECT DISTINCT p.*,p.id,p.ext,p.hash,p.status 
          FROM photos_photo p 
          JOIN photos_album_photos ap ON p.id = ap.photo_id 
          WHERE ap.album_id = 1 AND p.status = 1 
                                AND p.url IS NOT NULL 
                                AND LENGTH(TRIM(p.url)) > 0 
                                AND p.parent_id = 0 
          ORDER BY ap.sort ASC LIMIT 500 
  
  Error: 3065 Message: Expression #1 of ORDER BY clause is not in SELECT list, references
column 'ss.ap.sort' which is not in SELECT
  list; this is incompatible with DISTINCT


Разработчик ПО молчит, подскажите куда копать?
Был перенос с одного VPS на другой скрипта интернет магазина.
база импортирована как с помощью sypex dumper 
так и стандартными mysqldump - эффект не меняется, ранние базы такой же эффект. 

Стоит mysqld 5.7.12-0ubuntu1. Раньше была старее версия. мне кажется проблема в MySQL.
    


Ответы

Ответ 1



Решение и правда было в ONLY_FULL_GROUP_BY. Расскажу как победил 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,", "")); тем самым меняем значение на прежнее, но за исключением подстроки "only_full_group_by,". Проверить результат и убедиться что режим выключен можно командой: mysql> SELECT @@sql_mode;

Комментариев нет:

Отправить комментарий