总结Mysql 模糊查询的几种方式

总结下开发过程中用过模糊查询功能所用的一些东西,还有就是在建表时一定要考虑完善在建表,否则后期数据量大了在改表会非常的麻烦,请不要为了能够尽快用表而匆匆创建。在这也是给自己一个警醒,以后不再犯。
#select 字段 from 表 where 查询字段 like ‘%查询内容%‘;
select detailcontent from detail_htmlinfo where detail_htmlinfo like ‘%刘%‘;

SQL模糊查询,使用like模糊查询时,加上SQL里的通配符,可以参考下面:
1. % :表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。
2. _ : 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句。
3. [ ] :表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
4. [^ ] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
5. 查询内容包含通配符时,由于通配符的缘故,导致我们查询特殊字符“%”、“_”、“[”的语句无法正常实现,而把特殊字符用“[ ]”括起便可正常查询。


全文索引查询

    #SELECT 字段 FROM 表   WHERE MATCH (查询字段) AGAINST (‘查询内容‘);
    SELECT detailcontent FROM detail_htmlinfo   WHERE MATCH (detailcontent) AGAINST (‘刘‘ IN BOOLEAN MODE);
            注意 MATCH (detailcontent) 里面的字段必须是前面建立全文索引的。
            查询内容不区分大小写
            AGAINST (‘+a -b‘ IN BOOLEAN MODE);
            + 表示AND,即必须包含。- 表示NOT,即不包含。
             AGAINST (‘a b‘ IN BOOLEAN MODE);
            a和b之间是空格,空格表示OR,即至少包含a、b中的一个。

    #SELECT 字段 FROM 表 WHERE CONTAINS(查询字段,‘查询内容‘)
        SELECT detailcontent FROM detail_htmlinfo WHERE CONTAINS(detailcontent,‘*刘*‘)
        CONTAINS(detailcontent)里面的第一个是查询字段,并且要建立全文索引。

原文地址:https://blog.51cto.com/12266096/2384490

时间: 2024-11-08 20:54:35

总结Mysql 模糊查询的几种方式的相关文章

mybitis实现增,删,改,查,模糊查询的两种方式:(2)

方式二:mapper代理接口方式 这种方式只需要xml+接口(不用写实体类)但是需要符合三个规范 使用mapper'代理接口方式 在同一目录下(可以创建一个源文件夹,达到类文件和xml文件分类的作用) xml中namespace:命名空间为接口的全限定名(包名+类名) xml的文件名和接口的文件名相同,只是后缀名不同 接口中的方法名和xml中sql的id相同 1.创建一个java工程 2.将mysql的jar,mybatis的jar添加到构建路径中 3.写好配置文件 4.连接到数据库 5.写一个

mysql -- 模糊查询的四种方法

摘录自:http://www.jb51.net/article/48315.htm 1 %:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] WHERE u_name LIKE '%三%' 将会把u_name为“张三”,“张猫三”.“三脚猫”,“唐三藏”等等有“三”的记录全找出来. 另外 如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件 SELECT * FROM [use

SQL 的模糊查询的几种方式

1.使用'Like'进行查询 语法: where <列名> [NOT] Like <字符表达式> 2.使用'in'在限定值内进行查询 语法:where <列名> [NOT] IN <常量列表> 3.使用'Between···and···'在指定范围内进行查询 语法:where <列名> [NOT] between <起始表达式>  and  <结束表达式> 原文地址:https://www.cnblogs.com/xhs4

mysql中模糊查询的四种用法介绍

下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] WHERE u_name LIKE '%三%' 将会把u_name为“张三”,“张猫三”.“三脚猫”,“唐三藏”等等有“三”的记录全找出来. 另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件 SELECT * FROM [user] WHERE u_name LIKE

mysql进阶 六 模糊查询的四种用法介绍

mysql中模糊查询的四种用法介绍 这篇文章主要介绍了mysql中模糊查询的四种用法,需要的朋友可以参考下. 下面介绍mysql中模糊查询的四种用法: 1%: 表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] WHERE u_name LIKE '%三%' 将会把u_name为“张三”,“张猫三”.“三脚猫”,“唐三藏”等等有“三”的记录全找出来. 另外,如果需要找出u_name中既有“三”又有

Mybatis使用MySQL模糊查询时输入中文检索不到结果怎么办--转自http://www.jb51.net/article/88236.htm

这篇文章主要介绍了Mybatis使用MySQL模糊查询时输入中文检索不到结果的解决办法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下 项目开发中,在做Mybatis动态查询时,遇到了一个问题:MySQL在进行LIKE模糊查询时,输入英文可以正常检索出结果,但是输入中文后检索得到的结果为空. 由于是使用GET方式请求,所以为了确保中文不乱码,在控制台接收到请求参数后,对中文进行了一次编码. ? 1 2 3 4 5 try { realName = new String(realNam

MySql模糊查询like通配符使用详细介绍

MySql模糊查询like通配符使用详细介绍 转载:http://chenpeng.info/html/2020 MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi.grep和sed的扩展正则表达式模式匹配的格式. 一.SQL模式 SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符).在 MySQL中,SQL的模式缺省是忽略大小写的.下面显示一些例子.注意在你使用SQL模式时,你不能使用=或!=:而使用LIKE或NOT LIKE比较操作

MySQL模糊查询:LIKE模式和REGEXP模式

MySQL模糊查询提供了两种模式:LIKE模式和REGEXP模式. LIKE模式 LIKE模式是使用的LIKE 或 NOT LIKE 比较运算符进行模糊查询. SELECT 字段 FROM 表 WHERE 字段 LIKE[NOT LIKE] '条件' 针对条件,有以下几种通配符: 通配符 含义 % 表示任意一个或多个字符,可匹配任意类型和长度的字符 _ 表示任意单个字符,匹配单个任意字符 ESCAPE 关键字定义转义符.在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符. 示例: #

mysql模糊查询 like/REGEXP

原文:mysql模糊查询like/REGEXP 增删改查是mysql最基本的功能,而其中查是最频繁的操作,模糊查找是查询中非常常见的操作,于是模糊查找成了必修课. like模式 like意思是长得像,有两个模式:_和% _表示单个字符,通常用来查询定长的数据,如查出所有姓王的三个字的人名,假设姓名列名为name,注意“王”后面有两个_ select name from 表名 where name like '王__'; %表示0个或多个任意字符,如查出所有姓王的人名 select name fr