MySQL单表多关键字模糊查询的实现 |
本文标签:MySQL单表 MySQL单表多关键字模糊查询实现方法是很多人都非常想知道的一个问题,那么,究竟采用什么方法,才能实现MySQL单表多关键字模糊查询呢? 在最近的一个项目需要实现在MySQL单表多关键字模糊查询,但这数个关键字并不一定都存在于某个字段 。例如现有table表,其中有title,tag,description三个字段,分别记录一条资料的标题,标签和介绍 。然后根据用户输入的查询请求,将输入的字串通过空格分割为多个关键字,再在这三个字段中查询包含这些关键字的记录 。 可目前遇到的问题是,这些关键字是可能存在于三个字段中的任意一个或者多个,但又要求三个字段必须包含所有的关键词 。如果分别对每个字段进行模糊匹配,是没法实现所需的要求,由此想到两种方法: 在插入记录的同时,将需要进行多字段模糊查询的字段合并成一个字串并加入到一个新的字段中,然后对这个新字段进行模糊查询 。 使用全文检索,但是这需要用到中文分词或者将汉字转化为拼音(拆分汉字是不可行的,MySQL默认FT最小字节为4),而且并不利于今后的维护 。 CONCAT(str1,str2,…) 因此,MySQL单表多关键字模糊查询可以通过下面这个SQL查询实现
|