我正在使用php mysqli进行非常简单的搜索操作,在我的数据库中有一个我想搜索的公司名称字段,这就是我正在使用的
SELECT * FROM directory WHERE title LIKE '$sq%'
标题是我正在通过$_POST
查询的其余部分工作正常,但如果公司名称为
公司名称,如果我输入的名称不显示搜索结果,而只显示名字,我该如何解决这个问题,需要您的帮助
您需要将查询的前面通配为。 %
表示允许在左侧和右侧使用任何其他内容。
对于您当前的查询:
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
。