有什么办法可以避免重复“如果”?
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';
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';