问题合并重复行到第一行与mysql

vecaoik1  于 10个月前  发布在  Mysql
关注(0)|答案(2)|浏览(105)

你能给予我一个请求的例子,说明我如何合并两个重复的行合并一个?
| ID|名称|没有|
| --|--|--|
| 123 |AAA|一、二、三|
| 124 |AAA|四五六|
| 125 |AAA|七八九|
我要这个
| ID|名称|没有|
| --|--|--|
| 123 |AAA|一二三四五六七八九|
我研究了我是否可以用concat更新,但我不能得到任何结果。

qhhrdooz

qhhrdooz1#

首先更新:

UPDATE mytable
JOIN (
  SELECT MIN(id) AS id, GROUP_CONCAT(no) AS no
  FROM mytable
  GROUP BY name
) agg ON mytable.id = agg.id
SET mytable.no = agg.no;

字符串
然后删除:

DELETE m1
FROM mytable m1
JOIN mytable m2 ON m1.name = m2.name AND m1.id > m2.id;


这里有一个db<>fiddle

kkbh8khc

kkbh8khc2#

您可以在GROUP_CONCAT中使用ORDER BY

select min(id) as id, name, group_concat(no ORDER BY id ASC) as no
from mytable
group by name

字符串
Demo here

相关问题