2014-07-02 65 views
0

假設我有一個產品可以與k類別關聯。簡化的數據庫結構:使用單個查詢更新數據庫中的一組數據(刪除一些條目並添加一些)

// Table for products 
product 
- pid 
- name 

// Table for categories 
category 
- cid 
- name 

// table associating a product with categories 
product_category 
- pcid 
- pid 
- cid 

假設當前系統狀態已將產品與一組類別關聯。防爆

Product: Dell XPS Laptop 
Categories: Laptop, Electronics, Dell 

後來,管理員提交一套最新的類別,從產品去除Dell,並增加了Computers。管理員也可以隨時刪除多個類別並添加多個類別。

我可以通過多種方法之一做用2步此操作,包括:

  1. 刪除所有類別的產品,並添加那些在新集
  2. 檢索當前所有類別,比較一下到新的一組類別;然後根據需要運行刪除和插入查詢。

問:

有沒有辦法做到在同一時間刪除和更新使用單個查詢?要求MySQL檢查這個新的集合,刪除現有的但不在新集合中的並添加不存在的類別?

回答

相關問題