【问题标题】:Update multiple tables in a single query in mysql在mysql中的单个查询中更新多个表
【发布时间】:2016-08-25 08:05:10
【问题描述】:

我有三个查询,我想要一个。这是我的查询:

UPDATE tab1 SET a='' WHERE id=3;
UPDATE tab2 SET b='' WHERE id=9;
UPDATE tab3 SET c='' WHERE id=5;

【问题讨论】:

    标签: mysql sql-update multiple-tables


    【解决方案1】:

    你可以试试下面的代码:

    UPDATE tab1, tab2, tab3
    SET tab1.a = '', tab2.b = '',tab3.c = ''
    WHERE tab1.id = 3 AND tab2.id = 9 AND tab3.id = 5;
    

    更新:

    根据 OP 所述,代码不适用于 Mysql 5.5,添加了以下代码

    UPDATE tab1 a 
      INNER JOIN tab2 b ON (a.id = b.id)
      INNER JOIN tab3 c ON (a.id = c.id)
    SET tab1.a = '', tab2.b = '', tab3.c = ''
    WHERE a.id = 3 AND tab2.id = 9 AND tab3.id = 5;
    

    【讨论】:

    • @FrancescoG.,确保您确实使用了每个表的Aliases,并且每个表都有各自的列名; tab1.a ,tab2.b, tab3.c
    • ... 适用于 mysql 5.6 但不适用于 mysql 5.5!有什么建议吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多