[英]mysql update query on two tables
我試圖使用如下所示的查詢在一個查詢中更新兩個表:
$query = "UPDATE tblproducts, tblsideimages
SET tblproducts.prodCode='oj', tblsideimages.prodCode='oj'
WHERE tblproducts.prodCode='aj'
AND tblsideimages.prodCode='aj'";
如果tblsideimages中有內容,例如那個,但是如果tblsideimages沒有內容則它不起作用。
問題是我必須相應地進行調整,因為並不總是在tblsideimages中會有內容。 有時,用戶可以添加僅在tblproducts中插入的數據。 我如何才能做到這一點,如果tblsideimages中沒有內容,它仍然適用於tblproducts,如果tblsideimages和tblproducts都有內容,兩者都會更新。 謝謝!
沒有辦法(和真正的原因)在一個查詢中完成所有工作。 所以只需將其拆分為:
UPDATE tblproducts SET prodCode='oj' WHERE prodCode='aj'
UPDATE tblsideimages SET prodCode='oj' WHERE prodCode='aj'
較少的查詢並不意味着“更高效”,所以永遠不要按照這個想法將所有內容都放在一個查詢中。
您可以使用存儲過程執行此操作 - 使用事務中的update語句編寫存儲過程。
使用回滾,您可以確保將它們視為一個工作單元,即它們全部執行或者都不執行,以保持數據一致。
或者執行多個查詢
$query="UPDATE tblproducts
SET tblproducts.prodCode='oj'
WHERE tblproducts.prodCode='aj';
UPDATE tblsideimages
SET tblsideimages.prodCode='oj'
WHERE tblsideimages.prodCode='aj'";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.