2016-08-14 58 views
0

我想寫出檢查特定記錄的查詢,如果沒有找到它,它應該返回其他結果最佳方式排MYSQL

例如:

SNO | FIRST_COLUMN | SECOND_COLUMN | STATUS 
1 | value1  | value2  | 1 
2 | value1  | value2  | 1 
3 | value1  | value2  | 0 
4 | value1  | value2  | 1 

在上面的示例查詢應返回status0的行。如果值爲0的狀態不存在,則應返回status1的任何行。

如果我的解釋不好,請接受我的道歉。

在此先感謝。

回答

3

使用order bylimit

select SNO, FIRST_COLUMN, SECOND_COLUMN, STATUS 
from  mytable 
order by STATUS 
limit 1 
+0

哎呀,這是一個簡單的一招我忘了。非常感謝@trincot。 –

+0

我還有一個小小的疑問,我有4行'status'值爲'1',並且我使用了'LIMIT 1',那麼它將返回第4行而不是第1行。你能解釋一下嗎? –

+0

如果'status by'中沒有規定如何在'status'等於時進行排序,那麼SQL引擎可以自由選擇任何順序。它可以是插入的順序,你指定的某個索引的順序,......可以有很多解釋。但是,如果要考慮應該採取哪些措施,則可以將其他字段添加到'order by'子句中。 – trincot