gpt4 book ai didi

查询中的MySQL名称解析顺序

转载 作者:行者123 更新时间:2023-11-30 23:39:01 25 4
gpt4 key购买 nike

我将我的应用程序从 SQLite 切换到 MySQL

我有这样的嵌套查询(数字是可变的,所以它对我保持相同的名称很有用):

SELECT DATE_FORMAT(datetime, '%Y-%m-%d %H:00:00') as datetime FROM (
SELECT datetime FROM (...) AS T
) AS T GROUP BY datetime

在 SQLIte 中,GROUP BY datetime 是在格式化的日期上计算的,因此分组发生,而在 MySQL 中,使用了普通传递的 datetime,所以我没有分组。

为了更好地解释这在 MySQL 中有效,但我的循环必须在每个循环中重命名列和/或表AS:

SELECT DATE_FORMAT(datetime, '%Y-%m-%d %H:00:00') as new_datetime FROM (
SELECT datetime FROM (...) AS T
) AS T GROUP BY new_datetime

那么,有没有办法让 MySQL 组成为我想要的 datetime

最佳答案

如果您想按格式化的日期时间进行分组,请将其传递到 group by 子句中:

GROUP BY DATE_FORMAT(datetime, '%Y-%m-%d %H:00:00')

这将避免在不同的分钟/秒上出现多行。

为了避免调用 DATE_FORMAT 两次,您可以使用类似的东西:

SELECT @dtm := DATE_FORMAT(datetime, '%Y-%m-%d %H:00:00') 作为 datetime FROM tablename AS T GROUP BY @dtm

关于查询中的MySQL名称解析顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5093404/

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