2016-04-24 123 views
0

我當前的查詢:如何找到沒有東西時返回其他東西?

select timestamp from messagesTable 
where partner_jid='" + lastUserJid + "' AND msg='.roll' 
order by timestamp DESC LIMIT 1 OFFSET 1; 

這工作得很好......除非在數據庫中不存在的值。 如果數據庫中不存在值,那麼它應該是Select * messagesTable;,或者如果可能的話,什麼都不做。

有沒有辦法在相同的查詢中添加一個檢查?不幸的是它必須是相同的查詢,因爲我需要通過adb shell來執行。我一直在嘗試與CASE的東西,但我不太瞭解SQL。

+0

如果該值不存在,會發生什麼? –

+0

如果該值不存在,那麼只需從messagesTable中選擇*;對不起,應該添加@CL。 –

+0

要編輯問題,請點擊「編輯」。 –

回答

1

您只需追加第二個查詢,用WHERE過濾器,檢查第一查詢是否未返回任何內容:

SELECT * 
FROM (SELECT timestamp 
     FROM messagesTable 
     WHERE partner_jid = ? 
     AND msg = '.roll' 
     ORDER BY timestamp DESC 
     LIMIT 1 OFFSET 1) 
UNION ALL 
SELECT -1       -- or "timestamp FROM msgTab", or whatever 
WHERE NOT EXISTS (SELECT timestamp 
        FROM messagesTable 
        WHERE partner_jid = ? 
        AND msg = '.roll');