gpt4 book ai didi

mysql - 优化 MySQL 更新查询?

转载 作者:行者123 更新时间:2023-11-29 18:36:01 25 4
gpt4 key购买 nike

我有同一个数据库的两个表 D,两个表是 T1 和 T2。 T1 具有属性 a1,a2...an,t2 具有属性 a1,a2。我想要一个查询,仅当 T1.a1=T2.a1 时才能用 T2 的值更新 T1 的值,否则插入 T1 中。示例:

enter image description here

enter image description here

最佳答案

选项

您至少有三个选择:

  • 删除镜像表,然后运行 ​​create as select 重新创建表
  • 使用 mysql replace into 语法(请参阅:Replace Into Query Syntax)
  • 将您的问题拆分为两个查询:一个更新查询和一个插入查询

要遵循的示例和详细信息...

创建为选择

drop table t1;
create table t1 as select * from t2;

替换为

将 t1.a1 和 t2.a1 设置为两个表上的主键。运行:

Replace into t1(a1,a2) select a1, a2 from t2;

使用更新和插入:

UPDATE t1
INNER JOIN t2 ON t1.a1 = t2.a1
SET t1.a2 = t2.a2 where t1.a1 = t2.a1;

insert into t1(a1, a2) select a1, s2 from t2 where t2.a1 not in (select a1 from t1);

关于mysql - 优化 MySQL 更新查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45282976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com