如何獲取表中沒有任何記錄的ID?例如,表中不存在記錄
select id,name,mail from users where id in(2,3,4,5,6)
查詢返回記錄2,3,4的輸出,但不是5和6,因爲表中沒有記錄。
現在我想知道表中沒有記錄的ID是什麼。有什麼辦法可以在mysql中獲得這個輸出嗎?
如何獲取表中沒有任何記錄的ID?例如,表中不存在記錄
select id,name,mail from users where id in(2,3,4,5,6)
查詢返回記錄2,3,4的輸出,但不是5和6,因爲表中沒有記錄。
現在我想知道表中沒有記錄的ID是什麼。有什麼辦法可以在mysql中獲得這個輸出嗎?
嘗試:
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)
這對靜態ID有用,我以此爲例更好地理解。但是,所有的id在這裏都是動態的......對不起,如果我不清楚解釋... –
要選擇和顯示MySql中的「行」,它們必須從表,結果集查詢或視圖。您可以創建一個臨時表並將這些項目保存在此表中。您可以創建一個動態SQL(使用UNIONs)。如果要將這些值作爲字符串傳遞,則必須創建一個將此字符串解析爲單個值並將其保存到表中的過程。不幸的是,MySql很笨拙,在MySql中執行這樣的任務並不那麼容易,其他數據庫更加用戶友好,請看看它在PostgreSQL中是多麼容易:http://www.sqlfiddle.com/#!15/ f3e48/8 – krokodilko
如果不止一個表格來引用,這是可能的。 –
問題是您正在嘗試返回不存在的數據:)如果該數據存在於您的應用程序中,那麼您將不得不在應用程序中後處理該查詢。 –