MysQL:如何将条件(如果)的结果保存到变量中?

问题描述 投票: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';
    
php mysql database if-statement case
1个回答
0
投票
使用

COALESCE()

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 AND COALESCE(acd.dt_changed, a.dt) BETWEEN '2025-02-06 00:00:00' AND '2025-02-10 23:59:59';
    
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.