gpt4 book ai didi

php - 按查询分组在 Strict ONLY_FULL_GROUP_BY SQL 模式下不起作用

转载 作者:行者123 更新时间:2023-11-29 06:56:27 25 4
gpt4 key购买 nike

我有分组查询,它在 PHP PDO 中工作正常,但是当我在 mysql ini 中添加“sql_mode = ONLY_FULL_GROUP_BY”时,相同的查询失败并出现错误

SQLSTATE[42000]:语法错误或访问冲突:1055 'db.table.t_date' 不在 GROUP BY 中

实际查询

SELECT 
*
FROM
(
SELECT
DATE_FORMAT(t_date, '%b') AS mon,
DATE_FORMAT(t_date, '%Y-%m') AS fy_date,
(SUM(val1) - SUM(val2)) AS net_val
FROM
TABLE
GROUP BY
YEAR(t_date),
MONTH(t_date)
ORDER BY
DATE_FORMAT(t_date, '%Y-%m') DESC
LIMIT 12
) AS tbl
ORDER BY
fy_date

有人能告诉我为什么上面的查询不能用

sql_mode = ONLY_FULL_GROUP_BY

最佳答案

您需要将两个 date_format 表达式添加到 group by,因为所有非聚合列都需要分组。

SELECT 
DATE_FORMAT(t_date, '%b') AS mon,
DATE_FORMAT(t_date, '%Y-%m') AS fy_date,
(SUM(val1) - SUM(val2)) AS net_val
FROM
TABLE
GROUP BY
DATE_FORMAT(t_date, '%b'),
DATE_FORMAT(t_date, '%Y-%m')
ORDER BY
DATE_FORMAT(t_date, '%Y-%m') DESC

关于php - 按查询分组在 Strict ONLY_FULL_GROUP_BY SQL 模式下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12435218/

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