Php mysql:使用like返回重复行计数

Php mysql:使用like返回重复行计数,php,mysql,postal-code,Php,Mysql,Postal Code,我在下面有个问题 表1 第一种情况: postcode LS1 1LS 第二种情况: postcode LS11LS 表2 postcode| region LS1 | Leeds LS11 | Leeds 我使用下面的查询来计算地区与相关邮政编码的对比 SELECT table2.region as 'Region', COUNT( table2.postcode ) as 'count' FROM table1 INNER JOIN table2 ON

我在下面有个问题

表1

第一种情况:

postcode
LS1 1LS
第二种情况:

postcode
LS11LS
表2

    postcode| region
    LS1 | Leeds
    LS11    | Leeds
我使用下面的查询来计算地区与相关邮政编码的对比

SELECT table2.region as 'Region', COUNT( table2.postcode ) as  'count'
FROM table1
INNER JOIN table2 ON table1.postcode LIKE CONCAT( table2.postcode,  '%' ) 
WHERE table1.postcode >  ''
GROUP BY Region 
在表1中,我得到了第一个案例

Leeds | 1
Leeds | 2
将其应用于表1,我得到的第二个案例

Leeds | 1
Leeds | 2
出于某种原因,在该邮政编码/类似邮政编码上,另一半与第一部分完全相同,并且中间没有空格,相似的内部联接返回的计数为2

有什么解决办法吗


请参见此

如果表1中有两个条目的值分别为
LS1 1LS
LS11LS
,则您的联接将与这两个条目匹配,使您的计数为2。

我想我没有遵循您的数据示例。如何将
LS2
的利兹条目连接到
LS1 1LS
LS11LS
?表1中是否同时存在
LS1 1LS
LS11LS
?我同样感到困惑--“LS1”与“LS2%”不同。@MikeBrant抱歉,它的LS1经过编辑,最终用户可能在一个表中出现LS1 1LS或LS11LS的是条目mistake@AhmedElGamil . 你确定你没有在测试用例2时插入第二行而保留第一行,这样会得到两个匹配的行吗?嗯,这个小提琴非常好,我的代码与这里完全相同,它只给出计数2如果我将此记录更改为LS11LS,没有空间,我截断了表,仍然是一样的。。我会重新检查我的代码