共计 785 个字符,预计需要花费 2 分钟才能阅读完成。
自动写代码机器人,免费开通
今天就跟大家聊聊有关 MySQL 中怎么实现单表多字段模糊查询,可能很多人都不太了解,为了让大家更加了解,丸趣 TV 小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
如何实现 MySQL 单表多字段模糊查询
例如现有 table 表,其中有 title,tag,description 三个字段,分别记录一条资料的标题,标签和介绍。然后根据用户输入的查询请求,将输入的字串通过空格分割为多个关键字,再在这三个字段中查询包含这些关键字的记录。
可目前遇到的问题是,这些关键字是可能存在于三个字段中的任意一个或者多个,但又要求三个字段必须包含所有的关键词。如果分别对每个字段进行模糊匹配,是没法实现所需的要求,由此想到两种方法:
在插入记录的同时,将需要进行 MySQL 单表多字段模糊查询的字段合并成一个字串并加入到一个新的字段中,然后对这个新字段进行模糊查询。
使用全文检索,但是这需要用到中文分词或者将汉字转化为拼音 (拆分汉字是不可行的,MySQL 默认 FT 最小字节为 4),而且并不利于今后的维护。
如何实现 MySQL 单表多字段模糊查询
《MySQL 权威指南》中 CONCAT 的使用方法,在书中的对 CONCAT 的描述是:
CONCAT(str1,str2,…)
返回值:由全体出入参数合并在一起而得到的字符串。只要输入的参数中有 NULL 值,就返回 NULL。CONCAT 允许只有一个输入参数的情况。
因此,MySQL 单表多字段模糊查询可以通过下面这个 SQL 查询实现
SELECT*FROM`magazine`WHERECONCAT(`title`,`tag`,`description`)LIKE‘% 关键字 %’
看完上述内容,你们对 MySQL 中怎么实现单表多字段模糊查询有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注丸趣 TV 行业资讯频道,感谢大家的支持。
向 AI 问一下细节