我正在尝试在我的数据库中搜索一个字符串,但它应该能够匹配任何单词而不是整个短语.
假设,表数据的文本类似于b c d e f g.然后,如果我搜索d c b,它应该能够显示结果.
字段LIKE’%d c b%’不能以这种方式工作.
解决方法:
为获得最佳结果,您需要为数据创建FULLTEXT索引.
CREATE TABLE mytable (id INT NOT NULL, data TEXT NOT NULL, FULLTEXT KEY fx_mytable_data) ENGINE=MyISAM
SELECT *
FROM mytable
WHERE MATCH(data) AGAINST ('+word1 +word2 +word3' IN BOOLEAN MODE)
请注意,要索引单字母单词(如示例所示),您需要在MysqL配置中将ft_min_word_len设置为1.
即使您没有索引(只要您的表是MyISAM),此语法也可以工作,但速度很慢.