Автоматический поиск по полному имени

Я реализовал поиск с автоматическими подсказками, используя jQuery, php и SQL server 2008. Я ищу людей по их имени. Имя человека разделено на три поля: nombres, apellido_paterno и apellido_materno. Мое автозаполнение совпадает с результатами, в которых одно из трех полей выглядит как образец во входном тексте.

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

Таким образом, мой запрос работает нормально, если вы выполняете поиск по имени или фамилии, однако, если вы выполняете поиск по полному имени, совпадений нет. Итак, как мне добавить критерии к моему запросу, чтобы получить совпадения полного имени?


person Jorge Zapata    schedule 01.08.2012    source источник


Ответы (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";
person chrisboustead    schedule 01.08.2012
comment
Мне просто пришлось добавить пробел между полями, но ваш ответ сработал. Спасибо - person Jorge Zapata; 01.08.2012