首页 > 其他分享 >模糊查询

模糊查询

时间:2022-10-29 14:55:08浏览次数:84  
标签:like type 模糊 查询 biaoming where SELECT

MySQL模糊查询用法大全(正则、通配符、内置函数等)__陈哈哈的博客-CSDN博客_mysql模糊查询的通配符

一、通配符的分类

1. "%"百分号通配符

"%":表示任何字符出现任意次数

//查询以"结构"结尾的数据
SELECT * from biaoming where type like '%结构';
//查询出现"结构"的数据
SELECT * from biaoming where type like '%结构%';
//查询以"结构"开头的数据
SELECT * from biaoming where type like '结构%';
//......

2. "_"下划线通配符

"_":表示只能区配单个字符,不能多,也不能少

3. like操作符

如果使用like操作符时,后面没有使用("%"或者"_"),那么效果和"="是一样的

例子:下面两个语句执行结果一样

SELECT * from biaoming where type='数据结构'; 

SELECT * from biaoming where type like '数据结构';

所以,如果写成 select * from biaoming where type like "数据结"; 是查询不到任何东西的,因为没有 type = "数据结" 的,只有 type="数据结构"

4.注意事项:

1.MySql 在区配正文的时候,是不区分大小写的

2.通配符不能匹配 NULL

5.数据中有 "%"和"_"的情况

要加 ESCAPE 关键词进行转义

例如:数据为 "数%据_结构"

//这样子写会查询到整个表的数据
SELECT * from biaoming where type like '%_%';
//查询 带有 "_"的数据
SELECT * from biaoming where type like '%/_%' ESCAPE '/';
//查询带有 "%" 的数据
SELECT * from biaoming where type like '%/%%' ESCAPE '/';

二、使用MySql内置函数检索

1.locate()函数

返回第一次出现的位置,没找到就返回NULL

//相当于 like '%据%'
SELECT * from biaoming where LOCATE('据',type)>0;
//从第二个字符开始查询,像"据说"这样的数据就不会被查询出来,因为'据'在第一个字符位上
select * from biaoming where LOCATE('据',type,2)>0;

2.POSITION()

和locate的作用一样

SELECT * from biaoming where POSITION('据' IN type);

3.INSTR()

和locate一样,但是参数的位置相反

SELECT * from biaoming where INSTR(type,'据');

三、MySql regexp,rlike正则查询

1.regexp

 

 

 

//相对于 like '%据%'
SELECT * FROM biaoming where type REGEXP '据';
//查询像 '%据%' 或者像 '%二%' 的数据 或者带有据和二的数据
select * from biaoming where type REGEXP '据|二';
//查询像 '%据%二%'的数据,且顺序一定是先据再二
select * FROM biaoming where type REGEXP '据.+二';
//查询包含[]里面字符的数据,不区分大小写
select * from biaoming where type REGEXP '[a-z]';
//区分大小写
select * from biaoming where type REGEXP BINARY '[A-Z]';

特殊符号区配:

regexp '\\.';     区配含有.的数据

regexp '[.]'      区配含有.的数据

 

标签:like,type,模糊,查询,biaoming,where,SELECT
From: https://www.cnblogs.com/hmy22466/p/16838723.html

相关文章

  • SQL 大数据查询如何进行优化?
     1. 对查询进行优化,应尽量避免全表扫描,首先应考虑在where及orderby  涉及的列上建立索    来看一个Sql:  首先考虑下,如果这个表有100条数据,200条,2万。这......
  • 快读《ASP.NET Core技术内幕与项目实战》EFCore2.5:集合查询原理揭秘(IQueryable和IEnum
    本节内容,涉及4.6(P116-P130)。主要NuGet包:如前述章节 一、LINQ和EFCore的集合查询扩展方法的区别1、LINQ和EFCore中的集合查询扩展方法,虽然命名和使用完全一样,都两者定义......
  • C#的LINQ select查询、where过滤、group分组、join关联
    语言集成查询(LanguageIntegratedQuery)是一系列直接将查询功能集成到C#语言的技术统称,用于在所有基于.NET平台的变成语言中更加直接地声明跨越、过滤和投射操作的一......
  • SQL分层查询
    数据中可能存在层次关系,本文章主要介绍查询这种关系的实例。会大量使用递归式CTE。 Emps表中 EName员工和MGR上级之间的关系如下:  每个上级......
  • MyBatis关联查询基础 | Java
    mybatis关系映射1.用户与订单的关系一个用户有多个订单,一个订单只属于一个用户查询一个用户的所有订单属于一对多查询示例publicinterfaceUserMapper{@......
  • 前端项目实战105-isCompoundKey查询
    ["id"]76search_manufacture_sizeconstisCompoundKey=(primaryKey:PrimaryKey):Boolean=>{returnprimaryKey.length>1;}判断数组长度是否大于1返回值Boole......
  • linq查询
    最开始的对象查询是用foreach来遍历输出List<string>fruits=newList<string>(){"苹果","香蕉","西瓜","香瓜"};//{}对象集合初始化器,没有构造函数的初始化C......
  • 查询模块数据流优化
    简介上一篇介绍的查询模块数据流发现了一些问题:https://www.cnblogs.com/cjc-0313/p/16810460.html当用户没有操作视图,而是通过路由前后跳转时,并不会触发视图层数据的......
  • MSSQL三表/两表联合查询
    两张表的联合查询语句select* from User101219_Expandinnerjoin  user_101445onUser101219_Expand.userid=user_101445.userid 三表联合查询语句select* f......
  • 树状结构查询报错Error querying database. Cause: java.sql.SQLSyntaxErrorException
    Errorqueryingdatabase.Cause:java.sql.SQLSyntaxErrorException:Unknowncolumn...报这个错一般出现在新增字段或者修改字段,以及操作连表的时候1.可能左链接或内......