gpt4 book ai didi

mysql - 如何构造这种类型的 SQL 语句

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

我有一个带有 lastaccess 日期的 unix 格式的表。我想查询表中所有lastaccess日期大于180天的记录。

这是我当前的查询

SELECT  id, auth, username, IF(DATEDIFF(NOW(), FROM_UNIXTIME(lastaccess))>=180,'Y','N') As NotAccessedIn6Months
FROM mdl_user
WHERE auth = 'manual'

我需要能够使用 NotAccessedIn6Months 结果来过滤结果集,例如

SELECT  id, auth, username, IF(DATEDIFF(NOW(), FROM_UNIXTIME(lastaccess))>=180,'Y','N') As NotAccessedIn6Months
FROM mdl_user
WHERE auth = 'manual' AND NotAccessedIn6Months = 'Y'

但后一种格式是非法的。

谢谢。

最佳答案

您有两个选择:要么使用 HAVING 而不是 WHERE,如下所示:

SELECT id, auth, username, 
IF(DATEDIFF(NOW(), FROM_UNIXTIME(lastaccess))>=180,'Y','N') As NotAccessedIn6Months
FROM mdl_user
WHERE auth = 'manual'
HAVING NotAccessedIn6Months = 'Y'

... 或者只是将此条件移至 WHERE(因为在此特定查询中您根本不会显示“N”值),如下所示:

SELECT id, auth, username 
FROM mdl_user
WHERE auth = 'manual'
AND DATEDIFF(NOW(), FROM_UNIXTIME(lastaccess)) >= 180

关于mysql - 如何构造这种类型的 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11315657/

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