间隔变量

时间:2015-06-03 06:36:10

标签: php mysql

在我的表格邮政编码中,在邮政编码之间插入ZE2 9EE空格。

在用户搜索中,输入正确格式的邮政编码ZE2 9EE,它可以在LIKE查询中正常使用。但是,如果用户输入的邮政编码没有空格ZE29EE LIKE查询无效。

以下查询无效。

$pcode='ZE29EE';
SELECT * FROM postalscheme  where Postcode LIKE '%$pcode%'

3 个答案:

答案 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%';