2

我有一个包含名称和地址的 MySQL 数据库,但是有些重复的名称只有部分地址,例如

Name  | Address 
========================
Smith | 10 Main St., Cincinnati, OH 45202
Smith | 10 Main St.

我需要一个 SQL 查询来选择具有重复名称和两个 LIKE 地址中较短的所有行。我能够将 GROUP BY 和 COUNT() 用于精确重复,但我不知道如何将其应用于子字符串,如上面的示例。有任何想法吗?谢谢。

4

1 回答 1

2

像这样的东西应该工作:

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;
于 2012-08-21T21:48:03.760 回答