在最近的一个项目需要实现在MySQL单表多关键字模糊查询,但这数个关键字并不一定都存在于某个字段。例如现有table表,其中有title,tag,description三个字段,分别记录一条资料的标题,标签和介绍。然后根据用户输入的查询请求,将输入的字串通过空格分割为多个关键字,再在这三个字段中查询包含这些关键字的记录。
可目前遇到的问题是,这些关键字是可能存在于三个字段中的任意一个或者多个,但又要求三个字段必须包含所有的关键词。如果分别对每个字段进行模糊匹配,是没法实现所需的要求,由此想到两种方法:
在插入记录的同时,将需要进行多字段模糊查询的字段合并成一个字串并加入到一个新的字段中,然后对这个新字段进行模糊查询。 使用全文检索,但是这需要用到中文分词或者将汉字转化为拼音(拆分汉字是不可行的,MySQL默认FT最小字节为4),而且并不利于今后的维护。
在网上爬了两天,对此问题的处理都没有找到满意的解决方法,最后在《MySQL权威指南》中翻到了CONCAT的使用方法,在书中的对CONCAT的描述是:
CONCAT(str1,str2,…)
返回值:由全体出入参数合并在一起而得到的字符串。只要输入的参数中有NULL值,就返回NULL。CONCAT允许只有一个输入参数的情况。
因此,MySQL单表多关键字模糊查询可以通过下面这个SQL查询实现
SELECT * FROM `magazine` WHERE CONCAT(`title`,`tag`,`description`) LIKE ‘%关键字%'
MySQL单表多关键字模糊查询的实现方法
2019-11-15 15:16mysql教程网 Mysql
MySQL单表多关键字模糊查询实现方法是很多人都非常想知道的一个问题,那么,究竟采用什么方法,才能实现MySQL单表多关键字模糊查询呢?
延伸 · 阅读
- 2022-03-11MySQL的索引你了解吗
- 2022-03-10面试中老生常谈的MySQL问答集锦夯实基础
- 2022-03-10浅谈如何保证Mysql主从一致
- 2022-03-10Ubuntu18.04(linux)安装MySQL的方法步骤
- 2022-03-09MySQL让人又爱又恨的多表查询
- 2022-03-09MySQL Server 层和存储引擎层是怎么交互数据的?
- Mysql
MySQL数据库varchar的限制规则说明
本文我们主要介绍了MySQL数据库中varchar的限制规则,并以一个实际的例子对限制规则进行了说明,希望能够对您有所帮助。 ...
- Mysql
解决MySQl查询不区分大小写的方法讲解
今天小编就为大家分享一篇关于解决MySQl查询不区分大小写的方法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起...
- Mysql
详解MySQL中的分组查询与连接查询语句
这篇文章主要介绍了MySQL中的分组查询与连接查询语句,同时还介绍了一些统计函数的用法,需要的朋友可以参考下 ...
- Mysql
MySQL锁的知识点总结
在本篇文章里小编给大家整理了关于MySQL锁的知识点总结以及实例内容,需要的朋友们学习下。...
- Mysql
MySQL 数据备份与还原的示例代码
这篇文章主要介绍了MySQL 数据备份与还原的相关知识,本文通过示例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...
- Mysql
ERROR: Error in Log_event::read_log_event()
ERROR: Error in Log_event::read_log_event(): read error, data_len: 438, event_type: 2 ...
- Mysql
mysql 不能插入中文问题
当向mysql5.5插入中文时,会出现类似错误 ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column ...
- Mysql
浅谈mysql 树形结构表设计与优化
在诸多的管理类,办公类等系统中,树形结构展示随处可见,本文主要介绍了mysql 树形结构表设计与优化,具有一定的参考价值,感兴趣的小伙伴们可以参...