sql查询多条相同字段不同数据如何合并为一条,方便复制且安全

需求:需要通过主键id更新某些字段,但是暂时不知道这些id,所以先要通过查询到这些所有的id。
我的查询主键的sql:

select id from a where age > 20;

结果:
《sql查询多条相同字段不同数据如何合并为一条,方便复制且安全》
然后我们要去根据这些id,更新。
但是这些如果一个一个复制的话,太麻烦,而且容易出错。所以需要把这些多条id合并为一条,放在一个框里面,直接去复制使用

解决方案sql:

select GROUP_CONCAT(id) from a where age > 20;

结果:

《sql查询多条相同字段不同数据如何合并为一条,方便复制且安全》

我们就可以直接复制使用了。

但是为了更安全——-

我们可以用一句更新sql去联合查id的sql,如下:

update
  table1 a1
  inner join (
    select
      distinct id
    from
      table1
    where
      age > 20
      and ...
  ) b1 on a1.id = b1.id
set
  a1.待更新字段 = '新数据',
  ...
where
  1 = 1;

虽然安全,但是这种如果id数据量很大,可能会造成cpu的压力。

    原文作者:单边李001
    原文地址: https://blog.csdn.net/John_D_B_Lee/article/details/120977113
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞