我正在尝试使用如下查询更新一个查询中的两个表:
$query = "UPDATE tblproducts, tblsideimages
SET tblproducts.prodCode='oj', tblsideimages.prodCode='oj'
WHERE tblproducts.prodCode='aj'
AND tblsideimages.prodCode='aj'";
如果tblsideimages中有内容,它会起作用,但如果tblsiteimages没有内容,它就不起作用。
问题是,我必须让它相应地调整,因为tblsideimages中并不总是会有内容。有时,用户可以添加仅插入tblproducts中的数据。我如何才能做到,如果tblsideimages中没有内容,它仍然适用于tblproducts,并且如果tblsiteimages和tblpproducts都有内容,它们都会更新。谢谢
没有办法(也是真正的原因)在一个查询中完成所有工作。所以只需将其拆分为:
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'";