Mysql
 sql >> база данни >  >> RDS >> Mysql

SQLSTATE[42000]:Синтактична грешка или нарушение на достъпа:1055 Израз №3 от списъка SELECT не е в клауза GROUP BY и съдържа неагрегирани

Пусни:

sudo mysql -u root -p
mysql> SELECT @@global.sql_mode;

(След това по избор копирайте изхода в бележките си някъде, в случай че искате да се върнете към тези първоначални настройки по-късно.)

И променете SQL режима за вашия екземпляр на MySQL сървър:

mysql> SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

(Ако някога искате да се върнете назад, можете да изпълните нещо като mysql> SET GLOBAL sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' използвайки стойността, която сте запазили.)

По-постоянен начин (който ще оцелее при рестартиране на MySQL) би бил използването на конфигурациите на MySQL. Отидете на /etc/mysql/my.cnf (или може да се наложи да стартирате sudo vim /etc/mysql/mysql.conf.d/mysql.cnf ):

  • Добавете раздел за[mysqld] и точно под него добавете изразаsql_mode ="" или нещо като sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION" .

  • Рестартирайте услугата MySQL:

     sudo systemctl restart mysql
    

(или restart mysql на услугата sudo )

Вижте също https://dba.stackexchange.com/a/113153/18098



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да извлечете години, месеци, дни, часове, минути, секунди от дата на mysql?

  2. Сортиране на поддърво в йерархична структура от данни на затваряща таблица

  3. Flask-SQLAlchemy:Не може да се свърже отново, докато невалидна транзакция не бъде отменена

  4. Прекратяване на неактивни mysql връзки

  5. PHP въпрос:Как да коригирам тези if/elseif изрази