1

MySQL FULLTEXT 索引麻烦。有:

1) 带有以下词语的表格:

ID__WORDS
1___jfjdeur,rjjghfje,rioogr
2___fkjtifdfe,lerkr
3___kfrkriti
4___frlerkti,tykitriero,frorodfl,rfjkrjr
...
N___fjfjtiu,frkrker,fkdkri

2) WORDS 列上的 MySQL FULLTEXT 索引。

3)查询如:

   SELECT * 
   FROM table WHERE
   match(word) against ('gjfjdeur,rioogr,tykitriero')

结果返回:

ID___WORDS
1____gjfjdeur,rjjghfje,rioogr (because contains gjfjdeur and rioogr)
4____frlerkti,tykitriero,frorodfl,rfjkrjr (because contains tykitriero).

是否不可能重写查询以创建包含找到/匹配单词的附加列?就像是:

ID___WORDS______________________FOUND
1____gjfjdeur,rjjghfje,rioogr____________gjfjdeur,rioogr
4____frlerkti,tykitriero,frorodfl,rfjkrjr______tykitriero

也许是这样的:

SELECT *,some_function_to_select_matched_range(word)
FROM table WHERE
match(word) against ('gjfjdeur,rioogr,tykitriero')")

真正的“反对”由数百个单词组成,并且preg_match_all在 php 中不是从 FULLTEXT 索引行中找到的每个单词中选择匹配单词的好解决方案。

4

0 回答 0