MySql模糊查询(4种方式) -- 动态 sql 必备(附案例和效果图)

前言:

在听完 hsy 学长讲完相关的知识点后,把相关的知识总结出来,大家一起学习。
在学习 Mysql 模糊查询时,先来想一下 为什么要有模糊查询 ?
以及 模糊查询带来哪些比较好的地方 ?
当有这些疑问后,带着这些疑问听我娓娓道来。

为什么会有模糊查询的存在?

这点还是比较好理解的,想一下,在日常生活中,你是否会有突然之间怎么也想不起老朋友的名字,只
依稀能够想起姓什么或者姓名中的某个字,这时候你是不是会去通讯录搜索你保留的一些信息,进而
重新想起老朋友(类比一下 QQ 、微信的搜索框)

模糊查询带来哪些比较好的地方?

相信读完上面的分析,聪明的你已经有所体会:
1、更加贴近生活,也就是我们常说的人性化(越体现人性化的东西存在的时间越长)2、性能更好,节省时间。
相信你在读完上面的分析后,已经迫不及待的想知道如何实现神奇的模糊查询啦。
好嘞,干货来啦,

模糊查询常用关键字:

同样的,在使用这些常见关键字时,先来张数据库中的表(以下这张表引用 hsy 学长的数据库表)

在这里插入图片描述

  1. like关键字 – 用的最多的关键字

%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百 分号(%%)表示。

案例一:

// 将表中 包含 '帅' 的 用户的姓名查找出来
SELECT name FROM user where name LIKE '%帅%'

效果图:
在这里插入图片描述
案例二:

注:like '%想%' and like'%你%' ------------------------->(查询包含想也包含你的记录)
SELECT name FROM user where name LIKE '%想%' and name LIKE '%你%'

效果图:
在这里插入图片描述
案例三:

注:link '%隔%王%'  ----------------->(查询包含隔王的记录,并且隔要在王之前)
select name from user where name like '%隔%王'

效果图:
在这里插入图片描述

_: 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句。

案例一:

	//查询包含“见”这个字的记录,且长度为3
	SELECT name from user where name like '_见_'

效果图:
在这里插入图片描述
案例二:

//查询包含“见”这个字的记录,且它之前是一个内容,后面内容长度不限制
 SELECT name from user where name like '_见%'

效果图:
在这里插入图片描述

[ ]:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。

案例一:

//  like '小刘王]帅'  查询“小帅、刘帅、王帅”
	select name from user WHERE name like '[小王刘]帅'

案例二:

注: [ ] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-e” 
	SELECT *
	FROM user
	WHERE NAME 
	LIKE '小[0-9]气'   --中间为1个数字
	-----------------------------------------------------------------------------
	SELECT *
	FROM user
	WHERE NAME 
	LIKE '小[a-z]气'   --中间为1个字母,字母大小写可以通过约束设定,不区分大小写
	-----------------------------------------------------------------------------
	SELECT *
	FROM user
	WHERE NAME 
	LIKE '小[0-9a-z]气' --中间为1个字母和和1个数字,字母大小写可以通过约束设定,不区分大小写
	-----------------------------------------------------------------------------
	SELECT *
	FROM user
	WHERE NAME 
	LIKE '小[!0-9]气'   --中间不为数字
	------------------------------------------------------------------------------

^:表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。

案例一:

	注:like '[^小刘王]帅'  查询不是“郝帅、刘帅、王帅”的记录
	SELECT * 
	FROM user
	WHERE
	NAME LIKE '[^小刘王]帅'
原创文章 9 获赞 6 访问量 485

猜你喜欢

转载自blog.csdn.net/qq_43619271/article/details/106175511
今日推荐