gpt4 book ai didi

mysql - 协助编写基于条件的 mysql 查询

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

我正在尝试编写基于 if 语句的 MySQL 语句。

这就是我想要做的:我需要查询来根据项目是否会在两周内到期或是否已经过期来收集行。

这是我目前所拥有的:

select
t_id,
firstName,
lastName,
checkTime,
due
from (checkOut join People)
where checkOut.p_id = People.p_id
order by due IF(DATE(NOW()-checkOut.due) <= 2 WEEK);

MySQL 指出 IF 语句附近存在语法错误(我并不感到惊讶,因为我不熟悉在 MySQL 中编写条件语句)。

另一个问题是关于 MySQL 是否会产生一个负数的日期(即表明一个项目已过期)。提前致谢。

最佳答案

IF 不能像您拥有的那样使用。一种可移植的替代方法是在 ORDER BY 中放置一个 CASE 以在条件匹配的地方分配一个 0,并分配一个 1 当它不在 0 之后时排序。

select
t_id,
firstName,
lastName,
checkTime,
due
from
checkOut
join People ON checkOut.p_id = People.p_id
order by
/* Use DATE_SUB() */
/* This will sort those not yet past due ahead of those already past due.
If this is the opposite of what you want, switch the 0 and 1 */
CASE WHEN DATE_SUB(CURDATE(), INTERVAL 2 WEEK) <= checkOut.due THEN 0 ELSE 1 END;

请注意,我已通过将 WHERE 子句更改为 ON 子句,将您的隐式连接转换为显式连接。

关于mysql - 协助编写基于条件的 mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13222950/

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