如何在mysql中找到客户地址的差异

时间:2014-02-03 11:08:08

标签: mysql

我正在尝试使用mysql验证客户地址的重复。

客户1: 58 Avenue Rd,L​​ondon,NW10 4UU

客户2: 58 Avenue Road,London,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."%'

但它给出了错误的结果。

2 个答案:

答案 0 :(得分:0)

尝试以下方法;

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

由于返回了一行,我们知道这是一个重复的地址。

答案 1 :(得分:0)

既然你渴望自己去学习,我会给你一个良好的开端:你想要搜索“mysql编辑距离”......