[英]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.