2013-12-10 41 views
0

如何獲取表中沒有任何記錄的ID?例如,表中不存在記錄

select id,name,mail from users where id in(2,3,4,5,6) 

查詢返回記錄2,3,4的輸出,但不是5和6,因爲表中沒有記錄。

現在我想知道表中沒有記錄的ID是什麼。有什麼辦法可以在mysql中獲得這個輸出嗎?

+0

如果不止一個表格來引用,這是可能的。 –

+0

問題是您正在嘗試返回不存在的數據:)如果該數據存在於您的應用程序中,那麼您將不得不在應用程序中後處理該查詢。 –

回答

2

嘗試:

SELECT id 
FROM (
    SELECT 2 as id 
    union 
    SELECT 3 
    union 
    SELECT 4 
    union 
    SELECT 5 
    union 
    SELECT 6 
) q 
WHERE q.id NOT IN (SELECT id FROM users) 
+0

這對靜態ID有用,我以此爲例更好地理解。但是,所有的id在這裏都是動態的......對不起,如果我不清楚解釋... –

+0

要選擇和顯示MySql中的「行」,它們必須從表,結果集查詢或視圖。您可以創建一個臨時表並將這些項目保存在此表中。您可以創建一個動態SQL(使用UNIONs)。如果要將這些值作爲字符串傳遞,則必須創建一個將此字符串解析爲單個值並將其保存到表中的過程。不幸的是,MySql很笨拙,在MySql中執行這樣的任務並不那麼容易,其他數據庫更加用戶友好,請看看它在PostgreSQL中是多麼容易:http://www.sqlfiddle.com/#!15/ f3e48/8 – krokodilko

相關問題