我正在完成我的网站的实施,但现在我有一个问题发生在网上,我没有本地。
我知道这个错误:
failed: Mixing of GROUP columns (MIN (), MAX (), COUNT (), ...) with no GROUP columns is illegal if there is no GROUP BY clauseSQL查询的结果
我在网上搜索了很多论坛,大多数用户建议更改我不能/不想要的查询,或者他们说它可能处于sql-模式:启用服务器的ONLY_FULL_GROUP_BY。
我的sql模式在我的服务器在线上是空的(我可以通过查询select @@sql_mode;看到),更确切地说,我把sql_mode='' in my.cnf放在了。
但问题依然存在。
这是由于我的MySQL5.0.44版本在我的服务器上在线和本地5.1.32 (我没有这个bug .)吗?
发布于 2013-10-13 11:30:18
是。你是正确的。发生这种情况的原因是MySQL版本.
看看我的答案,这里
如何检查MySQL版本?
mysql> SELECT version();
+-----------+
| version() |
+-----------+
| 5.5.28 |
+-----------+
1 row in set (0.00 sec) 为了测试sql_mode ONLY_FULL_GROUP_BY,我创建了带有两列id, name和插入记录的表patient。请记住,sql_mode ONLY_FULL_GROUP_BY不是默认设置,如果需要,则需要设置。
1) 5.0.45-community-nt MySQL版本
SELECT name, MAX(id) FROM patient;
ERROR 1140 (42000): Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause 它失败了,没有必要将sql_mode设置为ONLY_FULL_GROUP_BY,因为它不允许在GROUP子句中未命名的非聚合列。
2) 5.1.40-community MySQL版本
mysql> SELECT name, MAX(id) from patient;
+----------+--------+
| MAX(id) | name |
+----------+--------+
| 33 | aniket |
+----------+--------+
1 row in set (0.03 sec) 然后在设置sql_mode ONLY_FULL_GROUP_BY之后
mysql> set sql_mode = 'ONLY_FULL_GROUP_BY';
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT name, MAX(id) from patient;
ERROR 1140 (42000): Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause 3)MySQL版本5.5.28
mysql> SELECT name, MAX(id) from patient;
+----------+--------+
| MAX(id) | name |
+----------+--------+
| 33 | aniket |
+----------+--------+
1 row in set (0.03 sec) 然后在设置sql_mode ONLY_FULL_GROUP_BY之后
mysql> set sql_mode = 'ONLY_FULL_GROUP_BY';
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT name, MAX(id) from patient;
ERROR 1140 (42000): Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause 结论
如您所见,5.0.45版本的查询失败,5.1.40、5.5.28和5.1.32之后的查询成功(正如您所提到的)。在MySQL版本之前,没有GROUP BY的5.1.10(不确定)查询会失败,而不管sql_mode ONLY_FULL_GROUP_BY集是否设置。
一些有趣的bug和sql_mode常见问题链接
https://stackoverflow.com/questions/15970686
复制相似问题