我使用jQuery,php和SQL server 2008实现了自动搜索。我正在寻找名字的人。该人的名字分为三个字段'nombres,'apellido_paterno'和'apellido_materno'。我的autosuggest匹配结果,其中三个字段之一看起来像输入文本中的模式。
$values = array(':x'=>$data['term'].'%',':y'=>$data['term'].'%',':z'=>$data['term'].'%');
$sql = "SELECT TOP 10 id_persona, nombres +' '+ apellido_paterno +' '+ apellido_materno AS value
FROM personas WHERE nombres LIKE :x OR apellido_paterno LIKE :y OR apellido_materno LIKE :z";
因此,如果您按名称或姓氏搜索,我的查询工作正常,但如果您按全名搜索则没有匹配项。那么,如何为我的查询添加条件才能带来全名匹配?
答案 0 :(得分:1)
假设这三个都是varchar字段,并且您正在查询数量有限的记录,我会这样做:
$values = array(':x'=>'%'.$data['term'].'%');
$sql = "SELECT TOP 10 id_persona, nombres +' '+ apellido_paterno +' '+ apellido_materno AS value
FROM personas
WHERE
nombres + ' ' + apellido_paterno + ' ' + apellido_materno LIKE :x";