gpt4 book ai didi

MySQL 5.7 - 错误 sql_mode=only_full_group_by

转载 作者:行者123 更新时间:2023-11-29 10:12:24 29 4
gpt4 key购买 nike

更新到 MySQL 5.7.11 后,我们收到许多与 sql_mode 相关的错误,包括 only_full_group_by。

研究表明我们可以关闭此功能,但最好了解如何使用结构正确的 SQL 语句来实现预期目标。

错误:

#1140 - In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column 'tblslideshow.slideImage'; this is incompatible with sql_mode=only_full_group_by

查询:

SELECT
tblslideshow.slideImage,
COUNT(tblslideshow.slideID) AS countVal
FROM
tblslideshow
WHERE
tblslideshow.parentID = 3424

目标是返回值列表以及所有返回记录的计数。无需更改 MySQL my.ini 即可实现此目标的最佳方法是什么?为什么这是一个分组错误,因为我们甚至没有分组?或者分组是正确解决方案的一部分吗?

预期结果应该是:

slideImage        |      countVal

Image1.jpg | 3

Image2.jpg | 3

Image3.jpg | 3

编辑:由于我们使用 PHP 和 MySQLi,因此排除 Count() 并仅使用“mysqli_num_rows”可能更明智

最佳答案

当您使用聚合函数时,您需要在Group by子句中添加非聚合列。

SELECT
tblslideshow.slideImage,
COUNT(tblslideshow.slideID) AS countVal
FROM
tblslideshow
WHERE
tblslideshow.parentID = 3424
Group by tblslideshow.slideImage

编辑

您可以尝试在select上使用子查询

SELECT t.slideImage,
(
SELECT
COUNT(tblslideshow.slideID) AS countVal
FROM
tblslideshow
WHERE
tblslideshow.parentID = 3424
) countVal
FROM tblslideshow t
WHERE t.parentID = 3424

关于MySQL 5.7 - 错误 sql_mode=only_full_group_by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50750710/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com