我有一个查询使用LIKE搜索邮政编码。现在,如果有人将完整的邮政编码放入邮政编码SW14 4NP。但是如果有人投入SW1,它将返回SW1 +结果。我怎样才能让这个如果有人把SW1,这将只显示SW1邮编,不SW11,SW14等PHP MYSQL使用LIKE搜索邮政编码
我的查询是:
SELECT postcode FROM data WHERE postcode LIKE '$search%'
的邮政编码数据库存储为SW14 4NP等与一个空间。
我有一个查询使用LIKE搜索邮政编码。现在,如果有人将完整的邮政编码放入邮政编码SW14 4NP。但是如果有人投入SW1,它将返回SW1 +结果。我怎样才能让这个如果有人把SW1,这将只显示SW1邮编,不SW11,SW14等PHP MYSQL使用LIKE搜索邮政编码
我的查询是:
SELECT postcode FROM data WHERE postcode LIKE '$search%'
的邮政编码数据库存储为SW14 4NP等与一个空间。
使用regular expression基于模式匹配:
WHERE postcode RLIKE '^$search(?[0-9][A-Z]{2})?'
SELECT postcode
FROM data
WHERE postcode LIKE 'SW1 %'
SELECT postcode FROM data WHERE postcode LIKE '$search %'
但说用户只插入SW,它会返回任何结果,而与当前的查询将返回任何东西从SW开始。取决于你想要做什么。
请提供样品表数据 – Omesh 2013-04-25 13:23:06
感谢您的答复,eggyal的回答是更适合,因为它有更多的灵活性。我忘了提及我有一些函数来验证它是一个完整的邮编还是一个外部邮编。我只是无法让查询只显示基于外部邮编的结果。谢谢大家的答案,因为他们都做得很好。 – Sygon 2013-04-25 13:30:34