在这里,我过去了我的SQL查询。 任何人都知道GROUP_CONCAT替代功能,所以让我知道吗?
SQL错误:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import libsoundtouch
SQL命令:
<h1>A Database Error Occurred</h1>
<p>Error Number: 1140</p>
<p>In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column 'smartsaver.ud.id'; this is incompatible with sql_mode=only_full_group_by</p>
答案 0 :(得分:0)
您有一个具有聚合功能的select
。这使查询成为聚合函数。但是没有group by
。幸运的是,在这种情况下,MySQL现在通常会返回错误。
MySQL的早期版本允许格式错误的查询,例如您使用默认设置的查询。它将返回任意行中未聚合列的值。默认设置已更改为生成错误。
您应该为group by
中的所有非聚合列添加一个select
:
group by ud.id, ud.url, d.document_name, d.d, . . .
您的代码很难阅读,因此很难挑选出未汇总的列。
答案 1 :(得分:0)
@ dev5您的代码难以阅读
SELECT列表的表达式#1不在GROUP BY子句中,并且包含非聚合列'smartsaver.ud.id',该列在功能上不依赖于GROUP BY子句中的列;这与sql_mode = only_full_group_by不兼容。
只需通过以下命令在MySQL中更改sql模式即可解决:
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
谢谢:-)