需求:数据库vachar字段存多个值用逗号分开,查询vachar字段是否包含多个数字
sql like关键字优化
select * from A where A.testpointids like '%1550%' or A.testpointids like '%1650%'
select * from A where A.testpointids regexp '[1550|1650|1750|1210]'
上面两种sql,其实效率一样。还是去网上找找优化方案吧。
like优化1. 采用开源插件分词 + 全文索引;
like优化2. 修改mysql配置文件ft_min_word_len=3 改为1(没有就新增)新建一个字段保存分词结果并建立全文索引,实现分词模块。sql中 使用match...against来代替like '%%'
有问题评论区讨论