MYSQL查询多列中的类似数据

时间:2014-11-19 09:16:51

标签: mysql

+-----------+----------+-----------+----------+
| contactID | fullname | firstname | lastname |
+-----------+----------+-----------+----------+
| c01       | Ash Das  | ASH       | Das      |
| c02       | Abhi Das | Abhi      | Das      |
| c01       | Ash Das  | Ash       | AH       |
+-----------+----------+-----------+----------+

从上表中我需要一个查询,它将从表中提供类似的名称。它可以匹配frstname,lastname以及fullname。

1 个答案:

答案 0 :(得分:0)

你可以使用soundex函数但是建议不要表现不是最佳的,因为mysql服务器不能使用索引来处理那种字符串函数。

例如,如果您只查看全名

select c1.contactID,c1.fullname, c2.contactID, c2.fullname
from <contacttable> c1
inner join <contacttable> c2 on 
    (c1.contactId != c2.contactId AND soundex(c1.fullname) = soundex(c2.fullname))