我有一个包含名称和地址的 MySQL 数据库,但有一些重复的名称,仅包含部分地址,例如
Name | Address
========================
Smith | 10 Main St., Cincinnati, OH 45202
Smith | 10 Main St.
我需要一个 SQL 查询来选择具有重复名称和两个 LIKE 地址中较短的一个的所有行。我能够使用 GROUP BY 和 COUNT() 来精确重复,但我不知道如何将其应用于上面的示例中的子字符串。有任何想法吗?谢谢。
最佳答案
这样的事情应该有效:
select * from mytable as t1
inner join mytable as t2
on t1.Name = t2.Name
and t1.Address like concat(t2.Address, '%')
and t1.Address != t2.Address;
关于MySQL 在同一列中查找类似项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12063519/