Search Posts on Binpipe Blog

GROUP BY clause is incompatible with sql_mode "only_full_group_by"

If you run into this error with MySQL:

Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'db.table.col' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by  

It's likely because you have the ONLY_FULL_GROUP_BY function enabled. To fix this, you have to disable it.

Run this command:

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

Another way to turn it off is that to find and modify the config file my.cnf. Usually it's in /etc/my.cnf or /etc/mysql/my.cnf.

First, check the sql_mode by running this query:

SELECT @@sql_mode;  

The result should be something similar to this:


Copy the sql_mode values, remove ONLY_FULL_GROUP_BY, edit my.cnf and put the rest together in a line under [mysqld] section:


Then restart the mysql server.

No comments:

Post a Comment

Hi, Leave a comment here and one of the binary piper's will reply soon :)