【发布时间】:2014-09-04 00:42:51
【问题描述】:
我在一个表中有数千行。哪些行具有相似的关键字,但可以归类到同一组。例如:
Table : Birds_Name
+-------+---------------------+
|ID |Name |
+-------+---------------------+
|1 |Blue Peckwood |
+-------+---------------------+
|2 |North Peckwood |
+-------+---------------------+
|3 |Northern Peckwood |
+-------+---------------------+
|4 |Northern Peckwood |
+-------+---------------------+
|5 |Red Heron |
+-------+---------------------+
|6 |Red Heron |
+-------+---------------------+
至于上面的表格,应该有 2 组鸟。他们是Peckwook和Heron。
但是在我运行这个 mySQL 之后,我得到了:
SELECT *
FROM birds_name
WHERE name IN (
SELECT name
FROM birds_name
GROUP BY name
HAVING COUNT(*) > 1
)
在我运行查询之后。这就是我所拥有的:
+-------+---------------------+
|3 |Northern Peckwood |
+-------+---------------------+
|4 |Northern Peckwood |
+-------+---------------------+
|5 |Red Heron |
+-------+---------------------+
|6 |Red Heron |
+-------+---------------------+
实际上,我希望选择任何共享相似字符串的行(在本例中为 Peckwood。所以它应该只有 2 个组 - Peckwood 和 苍鹭。
有可能吗?以及如何适配mysql代码来实现?
问候。
【问题讨论】:
-
与
Blue Peckwood相比,North Peckwood与Blue Heron的相似之处是什么?两者共享一个词...?
标签: mysql sql group-by duplicates