鑑於潛在ID的列表,可以使用單個MYSQL查詢快速找出哪些ID(如果有的話)在數據庫中沒有關聯記錄。在潛在ID的列表中查找無效的記錄ID
例如如果列表是1,3,4,並且記錄存在1和4,但不是3,那麼會有一個查詢從列表中返回3。
這需要應用於包含15000個記錄的數據庫,該數據庫將針對可能包含零個或多個無效ID的1到100個ID列表進行檢查。該列表來源於外部,不在另一個表格中。
鑑於潛在ID的列表,可以使用單個MYSQL查詢快速找出哪些ID(如果有的話)在數據庫中沒有關聯記錄。在潛在ID的列表中查找無效的記錄ID
例如如果列表是1,3,4,並且記錄存在1和4,但不是3,那麼會有一個查詢從列表中返回3。
這需要應用於包含15000個記錄的數據庫,該數據庫將針對可能包含零個或多個無效ID的1到100個ID列表進行檢查。該列表來源於外部,不在另一個表格中。
對不起,我以前的答案 - 我的不好,我太快讀了這個問題。
在純SQL(乾淨的含義不涉及醜陋的子查詢,聯合或臨時表)中沒有乾淨的方法來做到這一點。如果是我,我可能會做這樣的事情(假設PHP):
$all_ids = array(1, 3, 4);
$query = "SELECT id FROM table1 WHERE id IN (" . implode(',', $all_ids) . ")";
$found_ids = getArrayFromQuery($query);
$invalid_ids = array_diff($all_ids, $found_ids);
SELECT idtable.id, records.id as rid FROM idtable
LEFT JOIN records ON idtable.id = records.id
WHERE rid IS NULL
該解決方案似乎需要創建一個新表來保存列表,然後將列表進入新表將其與之前的比較現有的表格? {編輯解釋列表的問題尚未出現在另一張表中} – trowel 2010-03-03 04:02:35
與beamrider有誤解相同。他的解決方案很好:-) – 2010-03-03 04:34:12
謝謝。這非常好用! – trowel 2010-03-03 04:35:46