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索引行中找到的每个单词中选择匹配单词的好方法。