繁体   English   中英

两个表上的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中有内容,例如那个,但是如果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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM