MySQL Полный текстовый поиск по нескольким полям

#mysql #full-text-search

#mysql #полнотекстовый поиск

Вопрос:

У меня есть такая таблица:

 car/model
Audi A2 2.0 TDI
Audi A8 2.5 TDI
Audi A6 4.2 V8
  

Из PHP я получаю этот параметр: ‘Audi A8’

Когда я запускаю этот запрос:

 select * from cars where match(car, model) against ('Audi A8') 
  

MySQL возвращает:

 Audi A2 2.0 TDI
Audi A8 2.5 TDI
Audi A6 4.2 V8
  

Мне нужен только ‘Audi A8 2.5 TDI’. Как бы я это сделал?

Ответ №1:

Разделите значение на firstname и lastname:

 $names = explode( ' ', $value );
$firstname = mysql_real_escape_string( $names[ 0 ] );
$lastname = mysql_real_escape_string( $names[ 1 ] );
  

и запустите запрос:

 mysql_query( "SELECT * FROM people WHERE Firstname = '$firstname' AND Lastname = '$lastname'" );
  

Комментарии:

1. Спасибо за ответ. Тем не менее, я ищу решение для полного текстового поиска. Я уточнил, задав еще несколько вопросов по некоторым автомобилям. Кроме того, я не хочу использовать ‘LIKE’, слишком медленно, мой набор данных слишком большой.