簡體   English   中英

MySQL:如果`field` = TRUE,則選擇否則獲取最后一行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM