我正在使用php mysqli做一个非常简单的搜索操作,在我的数据库中有一个我想搜索的公司名称字段,这就是我正在使用的。
SELECT * FROM directory WHERE title LIKE '$sq%'
标题是我要通过的$_POST
,查询的其余部分工作正常,但是如果公司名称是
公司名称,如果我输入的名称不显示搜索结果,但只显示名称,我如何修复这个需要您的帮助
发布于 2016-04-26 07:51:36
您需要通配符前面的查询作为。%
的意思是在左边和右边允许任何其他东西。
使用当前的查询:
SELECT * FROM directory WHERE title LIKE '$sq%'
你需要标题以确切的短语开头。尝试:
SELECT * FROM directory WHERE title LIKE '%$sq%'
若要匹配搜索项之前的任何内容并进行搜索,请执行以下操作。
这也应该是参数化:
SELECT * FROM directory WHERE title LIKE ?
然后绑定'%' . $sq . '%'
。
关于通配符的更多信息:http://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html
简单的例子:
'chri%'
将匹配chris
,chrissss
,christopher
,不匹配kris
。
%ris%
将与chris
,chrissss
,christopher
,kris
相匹配。
%ris
将与chris
和kris
相匹配。
https://stackoverflow.com/questions/36868824
复制