部分字符串匹配问题

时间:2011-06-15 09:14:35

标签: mysql mysql-workbench

我有两张表,一张包含该报纸的报纸列表和一个部门邮政编码(所以部分邮政编码)。例如'BB5 2''Accrington Observer'。在另一个表中,我有一个完整的邮政编码列表,例如BB5 2HQ。

我想生成一个结果集,其中包含第二个表中的完整邮政编码和第一个表中的匹配发布,基于将部分代码与完整代码进行匹配。

我试过这个,但它会产生奇怪的结果,比如带有邮政编码的空白出版物,但总是直接在匹配的结果之后;

SELECT sd.domain, p.postcodes FROM postcodes p left join sector_domains sd on p.postcodes LIKE CONCAT(sd.postcode,'%') ;

1 个答案:

答案 0 :(得分:0)

left join将确保postcodes中的所有行都会被表示,无论它们是否在sector_domains中有匹配的行。如果他们在sector _domains中没有匹配的行,则sector_domains字段将为null

这会解释您所看到的行为吗?如果是这样,你可以尝试类似的东西:

SELECT sd.domain, p.postcodes FROM postcodes p join sector_domains sd where p.postcodes LIKE CONCAT(sd.postcode,'%') ;