MySql全文检索使用详解

实际项目中经常会有一个字段存储多个值用逗号分隔的场景,当分开查询的时候,使用模糊查询会非常影响效率。mysql提供了全文检索函数可以有效解决这一问题:

1.数据结构

IDCODE说明
11111111,2222222,3333333数据一
24444444,5555555数据二

2.创建Full Text类型索引

当我们要以CODE为条件使用全文检索查询的时候,首先要给CODE字段创建Full Text类型索引:

create fulltext index index_CODE on table(CODE)

3.查询语句

比如我们要查询CODE中包含2222222的数据

SELECT * FROM table WHERE MATCH (CODE) AGAINST ('2222222')

4.特殊情况说明

全文检索函数识别分隔符不仅有“,”还有“-”,实际项目中经常会用到一串编码来标识一条数据(比如商城的订单号),编码中就经常出现“-”,这种情况全文检索也会识别成分隔符,比如:

IDCODE说明
1111-1111,222-2222,333-3333数据一
2444-4444,555-5555数据二

 

解决方案:第一步和第二步不变,查询语句修改为

SELECT * FROM table WHERE MATCH (CODE) AGAINST ('"222-2222"')

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

superSubfn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值