我有一张表用于安排内容。目前,我通过此查询获取表格中的最后一行:
SELECT * FROM (`schedule`)
WHERE `date` <= '2014-06-06'
ORDER BY `date` desc
LIMIT 1
我还有一个名为demo
的字段,我想开发此查询以首先找到行WHERE demo = 1
,如果没有行包含demo = 1值,则默认为当前{ {1}}
有没有办法在单个查询中完成此操作?
答案 0 :(得分:0)
以下查询将为您提供帮助
SELECT * FROM schedule
WHERE CASE WHEN demo = 1 THEN
'2014-06-06' ELSE
date END <= '2014-06-06'
ORDER BY date desc
LIMIT 1
答案 1 :(得分:0)
尝试UNION
:
SELECT * FROM `schedule`
WHERE demo=1
UNION
SELECT * FROM `schedule`
WHERE `date` <= '2014-06-06'
ORDER BY `date` desc
LIMIT 1
<强>解释强>
使用UNION
将demo = 1的记录与其他查询结果结合使用。