我有一个名为 monitor_links 的表,其中包含以下列:
此表用于存储来自其他网站的链接。我正在使用此查询获取这些链接:
SELECT title, url
FROM monitor_links
WHERE id_domain = 5
GROUP BY url
ORDER BY date_created asc
通过该查询,我从存储链接(其中 id_domain 等于 5)返回标题和 url。但在我的例子中,可以存在具有相同 url 的行,并且不返回相同的重复 url 我正在使用 GROUP BY url
。 (如果存在多个具有相同 URL 且 id_domain = 5 的行,我的代码仅返回其中一行)。
问题是我收到以下错误:
Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'shuri.monitor_links.title' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by'.
有些人说我可以尝试禁用 only_full_group_by
,但我想修复我的查询而不是消除警告。
最佳答案
您可以使用 ANY_VALUE
函数告诉 MySQL 你想返回组内的任何值。
SELECT ANY_VALUE(title) AS title, url
FROM monitor_links
WHERE id_domain = 5
GROUP BY url
这基本上等同于为此查询暂时关闭 ONLY_FULL_GROUP_BY
。
关于mysql - GROUP BY 与 sql_mode=only_full_group_by 不兼容',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46576866/