![](/img/trans.png)
[英]PHP/MySQL : How to delete all data from database which contains specific id in one query
[英]How to delete all elements from a mysql database which are not in an array?
我有一個xml文件,其中包含要插入mysql數據庫的數據。 現在我已經在數據庫中有了條目,因此應該更新這些條目,不應該添加現有條目,並且-現在出現了問題-應該刪除數據庫中而不是xml中的條目。 因此,我嘗試創建2個數組,其中一個包含xml數據的一些比較值,例如$array_new["some1"] = "test"; $array_new["some2] = "test2";
$array_new["some1"] = "test"; $array_new["some2] = "test2";
另一個包含舊數據,例如$array_old["some1"] = "something"; $array_old["some2"] = "test2";
$array_old["some1"] = "something"; $array_old["some2"] = "test2";
現在,我想比較這兩個數組並將兩個中都不存在的所有值添加到新數組中。 我嘗試使用array_diff,但這只會將兩個數組中都不存在的一個值添加到新數組中。 但是我需要在一個新數組中擁有所有具有相同鍵的值,以便刪除它們。
任何人都知道如何做到這一點? 謝謝!
假設您的表具有唯一索引(主鍵),並且xml數據具有可用的相同鍵數據,請執行以下步驟:
1)從表中刪除不在數組中的所有記錄:
DELETE FROM tablename WHERE unique_field NOT IN (<comma seperated list or keys>)
2)運行INSERT ... ON DUPLICATE KEY UPDATE類型查詢:
INSERT INTO tablename VALUES (a, b, c) ON DUPLICATE KEY UPDATE field1 = a, ...
使用' not in
'創建一個where子句not in
只有您創建標識符,例如implode(",", $array)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.