mysql对两个表进行更新查询


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中有内容,它会起作用,但如果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'";