0

jQuery、php、SQLServer2008を使用してオートサジェスト検索を実装しました。名前で人を探しています。人の名前は、「nombres」、「apellido_paterno」、および「apellido_materno」の3つのフィールドに分けられます。私のオートサジェストは、3つのフィールドの1つが入力テキストのパターンのように見える結果と一致します。

  $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";

したがって、名前または姓で検索するとクエリは正常に機能しますが、フルネームで検索すると一致するものはありません。では、完全な名前を一致させるために、クエリに条件を追加するにはどうすればよいですか?

4

1 に答える 1

1

3つすべてが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";
于 2012-08-01T17:28:48.223 に答える