#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’, слишком медленно, мой набор данных слишком большой.