0

我有一个使用 LIKE 搜索邮政编码的查询。现在,如果有人输入完整的邮政编码,例如 SW14 4NP,邮政编码就可以了。但如果有人输入 SW1,它会返回任何带有 SW1+ 结果的东西。我怎样才能做到这一点,如果有人放 SW1,它只会显示 SW1 邮政编码,而不显示 SW11、SW14 等。

我的查询是:

SELECT postcode FROM data WHERE postcode LIKE '$search%'

邮政编码数据库存储为带有空格的 SW14 4NP 等。

4

4 回答 4

3
SELECT postcode FROM data WHERE postcode LIKE '$search %'

只需在搜索键后添加空格即可。然后它将找到所有 SW1 代码(或您要查找的任何代码),但不会找到 SW11

于 2013-04-25T13:19:29.577 回答
2

使用基于正则表达式的模式匹配:

WHERE postcode RLIKE '^$search( ?[0-9][A-Z]{2})?'
于 2013-04-25T13:23:17.013 回答
1
SELECT  postcode
FROM    data
WHERE   postcode LIKE 'SW1 %'
于 2013-04-25T13:19:42.353 回答
0
    SELECT postcode FROM data WHERE postcode LIKE '$search %'

但是假设用户仅插入 SW,它不会返回任何内容,而对于您当前的查询,它将返回以 SW 开头的任何内容。取决于你想做什么。

于 2013-04-25T13:23:10.270 回答