php – mySQL LIKE查询

我正在尝试在我的数据库搜索一个字符串,但它应该能够匹配任何单词而不是整个短语.

假设,表数据的文本类似于b c d e f g.然后,如果我搜索d c b,它应该能够显示结果.

字段LIKE’%d c b%’不能以这种方式工作.

有人可以建议更强大的搜索方式,也可以显示相关性计数器.

我不介意上面使用PHP,但更喜欢在数据库级别进行搜索.

解决方法:

为获得最佳结果,您需要为数据创建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),此语法也可以工作,但速度很慢.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...