[英]MySQL: select if `field` = TRUE else grab the last row
我有一個用來安排內容的表格。 目前,我通過此查詢獲取表的最后一行:
SELECT * FROM (`schedule`)
WHERE `date` <= '2014-06-06'
ORDER BY `date` desc
LIMIT 1
我還有一個名為demo
的字段,我想開發此查詢以首先找到WHERE demo = 1
行,如果所有行都不包含demo = 1值,則默認為當前WHERE date <= '2014-06-06' ORDER BY date desc
有沒有辦法在單個查詢中完成此操作?
以下查詢將為您提供幫助
SELECT * FROM schedule
WHERE CASE WHEN demo = 1 THEN
'2014-06-06' ELSE
date END <= '2014-06-06'
ORDER BY date desc
LIMIT 1
與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的記錄與其他查詢結果合並。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.