在 3 列上添加 FULLTEXT INDEX 时,是在 3 列上添加 1 个单个索引,还是添加 3 个单独的索引?
我问这个,因为目前我正在使用这样的 FULLTEXT:
ALTER TABLE myTable ADD FULLTEXT all3colsIndex (col1,col2,col3);
SELECT * FROM myTable WHERE MATCH (col1, col2, col3) AGAINST ('word');
我刚刚在我的搜索界面中添加了一个用户选项,用户可以在其中从搜索中删除其中一列。那么我是否能够在不丢失索引的情况下做到这一点,我只使用了 3 列中的 2 列:
ALTER TABLE myTable ADD FULLTEXT all3colsIndex (col1,col2,col3);
If (UserOptionRemoveCol == "selected") {
SELECT * FROM myTable WHERE MATCH (col1, col2) AGAINST ('word');
} else {
SELECT * FROM myTable WHERE MATCH (col1, col2, col3) AGAINST ('word');
}
或者我是否必须在两列以及三列上创建一个新的 FULLTEXT 索引?
ALTER TABLE myTable ADD FULLTEXT all3colsIndex (col1,col2,col3);
ALTER TABLE myTable ADD FULLTEXT 2colsIndex (col1,col2);