通过全名自动提取搜索

时间:2012-08-01 17:15:12

标签: sql sql-server autosuggest

我使用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";

因此,如果您按名称或姓氏搜索,我的查询工作正常,但如果您按全名搜索则没有匹配项。那么,如何为我的查询添加条件才能带来全名匹配?

1 个答案:

答案 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";