我有一个如下所示的数据库
ID color number code
102966 red 1 9f6606069f9b999b
102968 red 1 9f6606069f9b999b
102967 red 1 9f0606069f9f9f9f
102969 red 1 9f0606069f9f9f9f
103630 red 1 bbff9f0f8fdc9f7e
101582 red 1 bbff9b0fcf9f99d9
102000 red 1 99fd9f0fab999fff
101603 red 1 bbff9f0d8f9d96df
102016 red 1 bbff9900c09999df
此表有超过 4000 个条目。 我通过使用
得到了这个输出Select * from mytable order by code asc
现在我希望输出为 Id-Id-Id....,其中代码相似。 所以对于给定的片段,它应该像
102966-102968
102967-102969
所以我希望那些记录是相似的,它们的代码应该是这样的。 请帮忙。
最佳答案
我真的不明白你最后一行的结果是什么,这可能是一个错误或者我不明白你需要什么
我想你正在寻找一个group_concat
select group_concat(ID ORDER BY ID SEPARATOR '-' ) AS dup
from mytable
GROUP BY code
HAvING count(*) >1
ORDER BY dup
结果:
| dup |
|---------------|
| 102966-102968 |
| 102967-102969 |
group_concat
显示与 GROUP BY
匹配的所有值,这里是 ID
值。
术语 SEPARATOR
用于指定 -
作为 ID 之间的分隔符,因为默认分隔符是 ,
如果你想要所有的行,即使那些没有重复的 code
的行,删除 having
子句
关于mysql - 从mysql中选择相似的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36821348/