我問過關於前一個線程中多行的問題,但現在我需要知道單個行。這是一個例子查詢:MySQL - 如何查詢一個值,但默認爲另一個值?
SELECT * FROM table1 WHERE this = 5 LIMIT 1
但如果發現沒有行,那麼我會它,然後找到記錄有不同的值:
SELECT * FROM table1 WHERE this = 1 LIMIT 1
所以,我要的是,找到一個排這個值爲5,如果沒有找到,則默認爲查找值爲1的行。我如何在單個查詢中執行此操作? OR語句是這樣工作的嗎?
SELECT * FROM table1 WHERE this = 5 OR this = 1 LIMIT 1
請問或語句的順序嘗試找到任何一行5的值,如果找到那麼將停止並返回行?如果找不到,然後查找1,然後返回該行?如果沒有,那麼如何在一個查詢中搜索一個值,如果找不到缺省值查找另一個值呢?
我在想這個查詢:
SELECT * FROM table1 WHERE this IN(5,1) ORDER BY this ASC LIMIT 1
但是這個查詢將始終與1返回值,如果發現這兩個值嗎?所以我試過這個:
SELECT * FROM table1 WHERE this IN(5,1) ORDER BY this DESC LIMIT 1
但是,如果兩行都被發現正確的話,這總是會返回5的值?
你想要什麼,如果兩行被發現發生的呢? –
@伊格雷戈裏無論選擇什麼。因此,如果選擇從數據庫查看記錄的人的值爲5,但沒有記錄的值爲5,那麼我希望它默認加載值爲1. – John
如果要選擇「這個'有多個值?你是動態創建你的語句還是在程序中? – Ben