У меня есть таблица pers и применен комбинированный полнотекстовый индекс для полей (prenom, nom). Ниже приведены данные этой таблицы.
persID prenom nom (pers table)
--------------------------------
116 te te
117 te test test te
Теперь я попытался получить вышеуказанную запись, используя ПОИСКПОЗ и ПРОТИВ. Ниже мой запрос.
SELECT `Pers`.`persID`, Pers.prenom, Pers.nom
FROM `bdrplus`.`pers` AS `Pers`
LEFT JOIN `bdrplus`.`pers_detail` AS `PersDetail`
ON ( `PersDetail`.`persID` = `Pers`.`persID` )
WHERE `Pers`.`etat` =1
AND `Pers`.`persID` !=55
AND MATCH(`Pers`.`prenom`, `Pers`.`nom`) AGAINST('te*' IN BOOLEAN MODE)
Result
------------------------
persID prenom nom
117 te test test te
Теперь я попытался использовать оператор mysql LIKE(%..%). Ниже приведен запрос, который я пробовал.
SELECT `Pers`.`persID`
FROM `bdrplus`.`pers` AS `Pers`
LEFT JOIN `bdrplus`.`pers_detail` AS `PersDetail`
ON ( `PersDetail`.`persID` = `Pers`.`persID` )
WHERE `Pers`.`etat` =1
AND `Pers`.`persID` !=55
AND (Pers.prenom LIKE 'te%' OR Pers.nom LIKE 'te%')
Result
-----------------------
persID prenom nom (pers table)
116 te te
117 te test test te
Я не понимаю, почему я не получаю обе записи, используя оператор MATCH AGAINST в запросе полнотекстового индекса?