MySQL:选择`field` = TRUE,否则抓住最后一行

时间:2014-06-06 16:59:40

标签: mysql sql

我有一张表用于安排内容。目前,我通过此查询获取表格中的最后一行:

SELECT * FROM (`schedule`) 
WHERE `date` <= '2014-06-06' 
ORDER BY `date` desc 
LIMIT 1

我还有一个名为demo的字段,我想开发此查询以首先找到行WHERE demo = 1,如果没有行包含demo = 1值,则默认为当前{ {1}}

有没有办法在单个查询中完成此操作?

2 个答案:

答案 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的记录与其他查询结果结合使用。