mysql - GROUP BY 与 sql_mode=only_full_group_by 不兼容'

标签 mysql sql

我有一个名为 monitor_links 的表,其中包含以下列:

Image of my Table

此表用于存储来自其他网站的链接。我正在使用此查询获取这些链接:

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/

相关文章:

php - 如何使用 PHP/MySQL 显示具有相同样式的多个数据库对象?

MySQL:使用哪个 API?

php - Android - 通过 PHP 通过 HTTPClient 连接 MySQL

mysql - 子查询和加入

MySQL 错误 1005 : Foreign key constraint is incorrectly formed

php - WHOIS API JSON 数组内容

mysql - Rails 中的搜索逻辑,希望在没有 gem 的情况下使其更加精确

SQL 输出 Y/N 比较不同表中的日期列

mysql - 为什么使用 GROUP BY 的 SQL 查询会产生更多的行?

MySQL:基于 DELETE 和 INSERT 增加列值的触发器