SQL实现模糊查询的四种方法总结

目录

一、一般模糊查询

二、利用通配符查询

[1. _ 表示任意的单个字符](#1. _ 表示任意的单个字符)

[2. % 表示匹配任意多个任意字符](#2. % 表示匹配任意多个任意字符)

[3. 表示筛选范围](#3. [ ]表示筛选范围)

[4. 查询包含通配符的字符串](#4. 查询包含通配符的字符串)


一、一般模糊查询

  1. 单条件查询
sql 复制代码
//查询所有姓名包含"张"的记录

select * from student where name like '张'
  1. 多条件查询
sql 复制代码
//查询所有姓名包含"张",地址包含四川的记录

select * from student where name like '张' and address like '四川'

//查询所有姓名包含"张",或者地址包含四川的记录

select * from student where name like '张' or address like '四川'

二、利用通配符查询

通配符:_ 、% 、

1. _ 表示任意的单个字符

sql 复制代码
//查询所有名字姓张,字长两个字的记录

select * from student where name like '张_'

//查询所有名字姓张,字长三个字的记录

select * from student where name like '张__'

2. % 表示匹配任意多个任意字符

sql 复制代码
//查询所有名字姓张,字长不限的记录

select * from student where name like '张%'

//查询所有名字姓张,字长两个字的记录

select * from student where name like '张%'and len(name) = 2

3. 表示筛选范围

sql 复制代码
//查询所有名字姓张,第二个为数字,第三个为燕的记录

select * from student where name like '张[0-9]燕'

//查询所有名字姓张,第二个为字母,第三个为燕的记录

select * from student where name like '张[a-z]燕'

//查询所有名字姓张,中间为1个字母或1个数字,第三个为燕的名字。字母大小写可以通过约束设定,不区分大小写

select * from student where name like '张[0-9a-z]燕'

//查询所有名字姓张,第二个不为数字,第三个为燕的记录

select * from student where name like '张[!0-9]燕' 

//查询名字除了张开头妹结尾中间是数字的记录

select * from student where name not like '张[0-9]燕'

4. 查询包含通配符的字符串

sql 复制代码
//查询姓名包含通配符%的记录

 select * from student where name like '%[%]%'                //通过[]转义

//查询姓名包含[的记录

 select * from student where name like '%/[%' escape '/'    //通过指定'/'转义

//查询姓名包含通配符[]的记录

 select * from student where name like '%/[/]%' escape '/'    //通过指定'/'转义

到此这篇关于SQL实现模糊查询的四种方法总结的文章就介绍到这了。

相关推荐
AI人工智能+电脑小能手2 小时前
【大白话说Java面试题 第87题】【Mysql篇】第17题:分布式事务的实现原理?
java·数据库·分布式·mysql·面试
yyuuuzz2 小时前
独立站的技术基础与常见运维问题
大数据·运维·服务器·网络·数据库·aws
键盘上的猫头鹰5 小时前
【MySQL 教程(八)】索引、事务、用户管理、导入导出与分页查询
数据库·python·mysql
Royzst5 小时前
数据库知识点
数据库
雪的季节5 小时前
企业级 Qt 全功能项目
开发语言·数据库·qt
宋浮檀s6 小时前
应急响应——Web漏洞:命令执行+SSRF+弱口令
运维·数据库·sql·网络安全·oracle·应急响应
yurenpai(27届找实习中)7 小时前
redis_点评(21.好友关注——关注、取关功能实现;共同关注功能实现)
数据库·redis·缓存
Rick19937 小时前
索引的排序和分组
数据库·mysql
爱莉希雅&&&7 小时前
zabbix快速搭建和使用
android·linux·数据库·zabbix·监控
不爱编程的小陈7 小时前
事务的进化:从MySQL单机事务到TiDB分布式事务的探究
分布式·mysql·tidb