我希望使用varchar使select语句工作,我知道如何使用'bob'设置文本,如果数字与''
一致基本上我需要它选择以文本和数字的形式使用它:
SELECT * FROM customer WHERE name=bob46
但它不会选择,我的实际代码是基于英国邮政编码,最多包含8个字符,每次都有一个空格。
我需要任何特殊价值吗?我的也来自一个表单所以它会像$ searchquery那样将它作为从中提取数据的字符。
我已经完成所有项目应该显示但我得到了
每次都出现“SELECT * FROM customer WHERE postcode LIKE'& cr5 3eg&' “
我还使用pregreplace来确保正确使用数字和文本,我如何制作它以便在邮政编码之间注册空格?所以它认为它是s3 5rf而不是s35rf?
感谢
答案 0 :(得分:0)
我的答案是针对MySQL的。这是something similar for SQL。
此处$searchquery
是代表英国邮政编码的string
。
1)此查询从匹配的邮政区域返回客户:
SELECT * FROM customer WHERE postcode = '{$searchquery}'
2)如果您只给出postcode
的开头,则可以使用此查询:
SELECT * FROM customer WHERE postcode LIKE '{$searchquery}%'
3)如果你想匹配postcode
:
SELECT * FROM customer WHERE postcode LIKE '%{$searchquery}%'
您可以在进行搜索之前根据自己的喜好解析$searchquery
。例如,如果表单输入为“A9 9AA”,并且您要搜索postcode
使用“A9”进行搜索的每个客户,请使用例如explode function从输入中获取“A9”并执行查询n:o 2。
我不是您的示例WHERE postcode LIKE '&cr5 3eg&' "
来自哪里。 See the manual正确的MySQL语法:使用“%”或“_”,而不是“&”。
请注意。我对英国邮政编码一无所知。我查看了示例邮政编码from here。