如何将条件(如果)的结果保存到变量中? [重复]

问题描述 投票:0回答:1

有什么办法可以避免重复“如果”?

SELECT a.a_id, IF(acd.dt_changed IS NULL, a.dt, acd.dt_changed) AS dt FROM articles a LEFT JOIN articles_changed_dt acd ON a.a_id = acd.a_id WHERE a.status = 1 AND IF(acd.dt_changed IS NULL, a.dt, acd.dt_changed) BETWEEN '2025-02-06 00:00:00' AND '2025-02-10 23:59:59';
    
mysql if-statement
1个回答
0
投票
使用

COALESCE()

HAVING

注意MySQL已超载
SELECT a.a_id, COALESCE(acd.dt_changed, a.dt) AS dt FROM articles a LEFT JOIN articles_changed_dt acd ON a.a_id = acd.a_id WHERE a.status = 1 HAVING dt BETWEEN '2025-02-06 00:00:00' AND '2025-02-10 23:59:59';

运算符,以便接受别名。

	

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.