在我的表格邮政编码中,在邮政编码之间插入ZE2 9EE
空格。
在用户搜索中,输入正确格式的邮政编码ZE2 9EE
,它可以在LIKE
查询中正常使用。但是,如果用户输入的邮政编码没有空格ZE29EE
LIKE查询无效。
以下查询无效。
$pcode='ZE29EE';
SELECT * FROM postalscheme where Postcode LIKE '%$pcode%'
答案 0 :(得分:1)
您的查询应该是这样的:
SELECT * FROM postalscheme where replace(Postcode,' ','')
LIKE '%$pcode%' OR Postcode LIKE '%$pcode%'
这样,即使用户在中间键入空格
,您的查询也会有效答案 1 :(得分:1)
这应该可以解决问题:
"SELECT *
FROM postalscheme
WHERE REPLACE(Postcode, ' ', '')
LIKE '%" . str_replace(" ", "", $pcode) . "%'"
这将匹配您的代码,无论用户放置空格的位数和位置。
此外,您绝对应该避开用户输入以避免SQL injection攻击。
答案 2 :(得分:0)
使用replace
,如下所示:
SELECT *
FROM postalscheme
WHERE REPLACE(Postcode, ' ', '') LIKE '%$pcode%';