我正在使用php mysqli进行一个非常简单的搜索操作,在我的数据库中有一个我要搜索的公司名称字段,这就是我正在使用的
SELECT * FROM directory WHERE title LIKE '$sq%'
标题是我通过$_POST
获得的
其余的查询工作正常,但如果公司名称是
公司名称如果我输入的名称不显示搜索结果但仅显示名字,我该如何解决此问题需要您的帮助
答案 0 :(得分:0)
您需要将查询前面的通配符设置为。 %
表示左侧和右侧允许任何其他内容。
使用您当前的查询:
SELECT * FROM directory WHERE title LIKE '$sq%'
您需要标题以精确短语开头。尝试:
SELECT * FROM directory WHERE title LIKE '%$sq%'
匹配搜索字词之前的任何内容并继续进行。
这也应该是parameterized:
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
。