MySQL模糊查询是我们经常会遇到的,下面就为您介绍MySQL模糊查询的实现方法,希望对您学习MySQL模糊查询方面能够有所帮助。
在最近的一个项目需要实现在单表中对多字段进行多个关键字的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单表多关键字模糊查询,但这数个关键字并不一定都存在于某个字段。例如现有table表,其中有title,tag,description三个字段,分别记录一条资料的标题,标签和介绍。然后根据用户...
使用的 Example 类是由 mybatis-generator 所生成的 以下是具体内容: 这里用的 or 的方式 SpaItemExample.Criteria criteria = example.createCriteria(); criteria.andCodeLike('%'+queryString+'%');...
C#实现拼音模糊查询,可只输入一个字母就可查询出完整的字段
本文实例讲述了PHP+MySQL实现模糊查询员工信息功能。分享给大家供大家参考,具体如下: 一、代码 注意两点: 1、用Notepad+编辑时,格式选择:【编码字符集】->【中文】->【gb2312】 2、 <meta ...
mysql根据多个字段查找 在mysql中,如果要实现根据某个字段排序的时候,可以使用下面的SQL语句 SELECT * FROM ‘TABLE_NAME’ ORDER BY ‘Field’ 然而,如果要实现根据某个字段排序后再根据另一个字段排序的时候...
查询数据是指从数据库中的数据表或视图中获取所需要的数据,在mysql中,可以使用SELECT语句来查询数据。根据查询条件的不同,数据库系统会找到不同的数据。 SELECT语句的基本语法格式如下: [sql] view plain copy ...
在数据库中创建自定义函数,可在查询时候通过字母直接查询此字母开通的中文字段。
本人测试使用,搜索mysql的数据,里面包含完整jar,在LuceneDemo05这个文件执行,数据库写好但我已经屏蔽,数据是我用写死的,你也可以开启mysql查询,这个如果你下载后不能用我吃屎,绝对不骗分
1例如:要把如图1的字段拆分图2 select account_id, substring_index(substring_index(a.related_shop_ids,',' ,b.help_topic_id+1),',',-1) shopid from sales_hang_account a join mysql.help_topic b ...
%代表一个或多个字符的通配符,譬如查询字段name中以大开头的数据: (2)搭配_使用 _代表仅仅一个字符的通配符,把上面那条查询语句中的%改为_,会发现只能查询出下面一条数据: 2、使用like模糊查询会导致索引...
20_查询表中的字段 21_查询时的细节注意补充 22_查询常量、表达式、函数 23_起别名 24_去重 26_使用concat实现连接 27_案例讲解】基础查询 28_条件查询介绍 29_条件运算符的使用 31_模糊查询—like关键字 32_模糊...
SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式: 1、%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。 SELECT * ...
主要介绍了SqlServer使用 case when 解决多条件模糊查询问题 的相关资料,需要的朋友可以参考下
在mysql中实现模糊查询的有like和regexp。 ———————— like的用法许多人都是知道的,最为常用的情况就是select * from a where name like ‘%a%’; 其中’%’代表的是任意个字符,它的效果像是正则表达式里的...
最近有个朋友提到如何使用sql来删除一个字段中部分内容,于是就写了这篇文章,简单记过: 测试表如下: 代码如下: CREATE TABLE `t` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `domain` tinytext,...
主要介绍了浅谈mysql通配符进行模糊查询,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式: 1,%:表示任意个或多个字符。可匹配任意类型和长度的字符。 比如 SELECT * FROM [user] WHERE u_name LIKE ‘%三%’ 将会把u...
在mysql中使用内部函数instr,可代替传统的like方式查询,并且速度更快。 instr 函数,第一个参数是字段,第二个参数是要查询的串,返回串的位置,第一个是1,如果没找到就是0. 例如,查询字段name中带”军”的...
ThinkPHP5图书管理系统实现了常见字段比如字符串,整型,浮点型,日期型,图片型和文件型的添删改查,查询条件采用多条件组合模糊查询,查询结果都采用分页显示,其中字符串分为单行文本字符串,多行文本字符串已经...