我正在尝试使用mysql验证客户地址的重复。
客户1:58 Avenue Rd,伦敦,NW10 4UU
客户2:58 Avenue Road,伦敦,NW10 4UU-
如何找到重复的客户地址?两者都是一样的。但是"客户2"在同一地址中添加了一些" - "。但是我们不能接受这个地址。因为两者都是一样的。
我正在使用此查询。
SELECT COUNT(customer_address) FROM customer WHERE customer_address = '$customer_address'
但它返回0。因此,它接受客户2.这是错误的。
我正在用另一种方式尝试。
SELECT COUNT(customer_address) FROM customer WHERE customer_address LIKE '%".$customer_address."%'
但给出了错误的结果。
,由于您渴望自己学习它,所以我在Google上为您提供了一个良好的开端:您需要搜索" MySQL编辑距离" ...
尝试以下;
SELECT
c.customer_address
FROM
customer c
WHERE
c.customer_address IN (
SELECT
customer_address
FROM
customer
HAVING
COUNT(DISTINCT customer_address) > 1
)
例如,使用此数据;
+---------------------------------------+
| customer_address |
+---------------------------------------+
| 58 Avenue Road, London, NW10 4UU |
| 58 Avenue Road, London, NW10 4UU - |
| 16 Beach Road, Bournemouth, NA66 6NA |
+---------------------------------------+
我得到
+-------------------------------------+
| customer_address |
+-------------------------------------+
| 58 Avenue Road, London, NW10 4UU - |
+-------------------------------------+
1 row in set
由于返回一行,我们知道这是一个重复的地址。