我想选择仅在将来展示的节目,但目前正在播放节目。这必须是一个常见的请求,但我找不到任何有关帮助我解决此问题的信息。
我的表格有日期列: - show_from - show_until
SELECT * FROM shows s
WHERE s.show_status = 'ENABLED'
AND s.show_from >= CURRENT_DATE()
ORDER BY s.show_from ASC
这将选择将来的节目,但如果节目持续时间超过1天,则不会显示。
答案 0 :(得分:2)
SELECT * FROM shows s
WHERE s.show_status = 'ENABLED'
AND
(
s.show_from >= CURRENT_DATE()
OR (s.show_from <= CURRENT_DATE() AND s.show_until >= CURRENT_DATE())
)
ORDER BY s.show_from ASC
选择已开始但尚未完成的节目。
答案 1 :(得分:1)
试试这个:
SELECT * FROM shows s
WHERE s.show_status = 'ENABLED'
AND s.show_to >= CURRENT_DATE())
ORDER BY s.show_from ASC
答案 2 :(得分:0)
这有用吗?
SELECT * FROM shows s
WHERE s.show_status = 'ENABLED'
AND (s.show_from >= CURRENT_DATE() OR s.show_to >= CURRENT_DATE())
ORDER BY s.show_from ASC