Wyszukiwanie pełnotekstowe MySQL w wielu kolumnach: zamieszanie wynikowe
Mam zapytanie do wyszukiwania, które wykonuje wyszukiwanie pełnotekstowe w DB.
$sql = "SELECT
*
FROM
`tbl_auction_listing` AS `al`
JOIN
`tbl_user` AS `u` ON `al`.`user_id` = `u`.`user_id`
LEFT JOIN
`tbl_gallery_details` AS `gd` ON `al`.`user_id` = `gd`.`user_id`
LEFT JOIN
`tbl_self_represented_details` AS `sr` ON `u`.`user_id` = `sr`.`user_id`
WHERE
`al`.`status` = '" . ACTIVE . "'
AND
`al`.`start_date` < NOW()
AND
`al`.`end_date` > NOW()
AND
MATCH(`al`.`listing_title`,
`al`.`description`,
`al`.`provenance`,
`al`.`title`,
`al`.`artist_full_name`,
`al`.`artist_first_name`,
`al`.`artist_last_name`,
`sr`.`artist_name`,
`gd`.`gallery_name`,
`u`.`username`) AGAINST('$search_query' IN BOOLEAN MODE)";
Kiedy szukam „Cardozo, Horacio” lub „cardozo” lub „horacio”, nie otrzymuję żadnych wyników, ale wiem, że jest artysta z 2 rekordami w bazie danych z artist_full_name = Cardozo, Horacio.
Jeśli usunę wszystkie pola MATCH i po prostu je mamal
.artist_full_name
Dostaję 2 wyniki. Jeśli dodamal
.description
Otrzymuję 1 wynik, ponieważ w opisie istnieje „Horacio Cardozo”.
Czy istnieje sposób, aby wyszukiwanie zwracało wszystkie rekordy, jeśli jakikolwiek warunek (dowolne słowo wyszukiwanego hasła) zostanie spełniony w którymkolwiek z pól MATCH? Próbowałem usunąć TRYB W BOOLEAN, ale dało to takie same wyniki.