【发布时间】:2014-12-05 11:18:35
【问题描述】:
我有 pers 表并在 (prenom, nom) 字段上应用了组合全文索引。以下是该表中的数据。
persID prenom nom (pers table)
--------------------------------
116 te te
117 te test test te
现在,我尝试使用 MATCH 和 AGAINST 获取上述记录。以下是我的查询。
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 运算符获取两条记录?
【问题讨论】:
标签: mysql sql full-text-search full-text-indexing