gpt4 book ai didi

mysql - 加入 "AND"条件中的 case 语句

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

我想做类似下面的事情,但这是行不通的。逻辑是:如果列表仍然有效,则获取活跃的 user_favourite 记录,否则获取不活跃的记录。

select uf.* 
from user_favourite uf
join listings l on l.record_id = uf.listing_id
AND
CASE WHEN l.status IN (0,1,5) THEN uf.active = 1
ELSE uf.active = 0
END CASE
where uf.listing_id = 13

正确的语法是什么?

最佳答案

可以写成:

SELECT uf.* 
FROM user_favourite uf
JOIN listings l ON (
l.record_id = uf.listing_id
AND uf.active = IF(l.status IN (0,1,5), 1, 0)
)
WHERE uf.listing_id = 13

还有条件

uf.active = IF(l.status IN (0,1,5), 1, 0)

可以简化为

uf.active = (l.status IN (0,1,5))

或者,如果您想保留 CASE 语句

uf.active = CASE
WHEN l.status IN (0,1,5) THEN 1
ELSE 0
END

关于mysql - 加入 "AND"条件中的 case 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37069412/

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