有SQL GROUP_CONCAT替代功能吗?

时间:2019-08-03 06:35:40

标签: mysql sql function group-by

在这里,我过去了我的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>

2 个答案:

答案 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',''));

谢谢:-)

相关问题