我有一個ID列表,我編寫了一個MYSQL查詢來獲取有關這些ID的信息。返回不存在的ID
我需要的是一種方法來確定哪些ID不再在數據庫中從ID列表中刪除它們。
有沒有一個簡單的解決方案來做到這一點,我現在無法想象?
我有一個ID列表,我編寫了一個MYSQL查詢來獲取有關這些ID的信息。返回不存在的ID
我需要的是一種方法來確定哪些ID不再在數據庫中從ID列表中刪除它們。
有沒有一個簡單的解決方案來做到這一點,我現在無法想象?
該文章不知道你的表結構,從而使一上來把我的頭頂部,但...
如果你有兩個表,身份證件和信息,如:
ID (IDCOL int, DATEENTERED datetime)
INFO (INFOID int, ID_ID int, ID_NAME varchar(50))
然後,你可以查詢
SELECT * FROM ID WHERE IDCOL NOT IN (SELECT ID_ID FROM INFO)
這應該返回ID中的所有條目那裏是不是在INFO相應的條目。
之後,這是一個寫適當的刪除語句的情況。
整個事情可以在一個步驟中完成與
DELETE FROM ID WHERE IDCOL NOT IN (SELECT ID_ID FROM INFO)
但我一般喜歡做我刪除定義的事務,你可以檢查,以確保你沒有搞砸了你提交之前對數據庫的更改。
而我從上面的評論中看到,我的答案是基礎的,因爲它不是全部都在數據庫中:) – Adrian 2012-08-15 23:46:19
創建一個附加(臨時)表,使用ID列表填充它,然後執行查詢以查找不存在的ID。例如 -
CREATE TEMPORARY TABLE temp(id INT);
INSERT INTO temp VALUES (1), (2), (8), (10);
-- View non existing ID:
SELECT t.id FROM temp t
LEFT JOIN your_table a
ON a.id = t.id
WHERE a.id IS NULL;
DROP TEMPORARY TABLE IF EXISTS temp;
然後在php應用程序中讀取此數據集並更新ID列表。
返回數據庫中的所有ID並將它們與ID數組進行比較。刪除那些不匹配的文件 – 2012-08-15 23:16:09
這個ID列表在哪裏?在另一張桌子?在一個PHP數組? ..? – 2012-08-15 23:23:17
該列表基本上是一個php數組,我需要將其與數據庫中的表進行比較。 – user1601869 2012-08-15 23:31:12