数据库-SQL中like的用法
2019独角兽企业重金招聘Python工程师标准>>>
在SQL结构化查询语言中,LIKE语句有着至关重要的作用。
LIKE语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的。
假设有一个数据库中有个表table1,在table1中有两个字段,分别是name和sex二者全是字符型数据。现在我们要在姓名字段中查询以“张”字开头的记录,语句如下:
select * from table1 where name like "张*"
如果要查询以“张”结尾的记录,则语句如下:
select * from table1 where name like "*张"
这里用到了通配符“*”,可以说,like语句是和通配符分不开的。下面我们就详细介绍一下通配符。
匹配类型 | 模式 | 举例及代表值 | 说明 |
多个字符 | * | c*c代表cc,cBc,cbc,cabdfec等 | 它同于DOS命令中的通配符,代表多个字符。 |
多个字符 | % | %c%代表agdcagd等 | 这种方法在很多程序中要用到,主要是查询包含子串的。 |
特殊字符 | [*] | a[*]a代表a*a | 代替* |
单字符 | ? | b?b代表brb,bFb等 | 同于DOS命令中的?通配符,代表单个字符 |
单数字 | # | k#k代表k1k,k8k,k0k | 大致同上,不同的是代只能代表单个数字。 |
字符范围 | - | [a-z]代表a到z的26个字母中任意一个 | 指定一个范围中任意一个 |
排除 | [!字符] | [!a-z]代表9,0,%,*等 | 它只代表单个字符 |
数字排除 | [!数字] | [!0-9]代表A,b,C,d等 | 它只代表单个字符 |
组合类型 | 字符[范围类型]字符 | cc[!a-d]#代表ccF#等 | 可以和其它几种方式组合使用 |
假设表table1中有以下记录:
name sex
张小明 男
李明天 男
李天 女
王五 男
王清五 男
下面我们来举例说明一下:
- 例1,查询name字段中包含有“明”字的。
select * from table1 where name like '%明%'
- 例2,查询name字段中以“李”字开头。
select * from table1 where name like '李*'
- 例3,查询name字段中含有数字的。
select * from table1 where name like '%[0-9]%'
- 例4,查询name字段中含有小写字母的。
select * from table1 where name like '%[a-z]%'
- 例5,查询name字段中不含有数字的。
select * from table1 where name like '%[!0-9]%'
以上例子能列出什么值来显而易见。但在这里,我们着重要说明的是通配符“*”与“%”的区别。
很多朋友会问,为什么我在以上查询时有个别的表示所有字符的时候用"%"而不用“*”?先看看下面的例子能分别出现什么结果:
select * from table1 where name like '*明*'
select * from table1 where name like '%明%'
大家会看到,前一条语句列出来的是所有的记录,而后一条记录列出来的是name字段中含有“明”的记录,所以说,当我们作字符型字段包含一个子串的查询时最好采用“%”而不用“*”,用“*”的时候只在开头或者只在结尾时,而不能两端全由“*”代替任意字符的情况下。
转载于:https://my.oschina.net/Clarences/blog/895073
数据库-SQL中like的用法相关推荐
- SQL数据库语句中escape的用法及含义
SQL数据库语句中escape的用法及含义 escape是用来转译的 例如: 数据库中有个表 A字段abc 中存du了字符'%',那么我查询的时候如果只想查询第二位是 '%'的记录就需要进行模糊查询, ...
- SQL中Truncate的用法
转自:https://www.cnblogs.com/zhoufangcheng04050227/p/7991759.html 本文导读:删除表中的数据的方法有delete,truncate, 其中T ...
- sql去重复操作详解SQL中distinct的用法
在表中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值.关键词 distinct用于返回唯一不同的值. 表A: 表B: 1.作用于单列 select dist ...
- 【SQL中limit的用法】
SQL中limit的用法 说明:limit子句用于限制查询结果返回的数量,常用于分页查询. 用法:[select * from tableName limit i,n ] 参数:tableName: ...
- SQL中的limit用法
limit用法 SQL中的limit函数是用来对数据库中的字段进行限制提取的,如:一个用户表中有许多的用户信息,如果想要取出其中某个位置的某几条数据,就可以使用limit函数. 结构 limit函数结 ...
- 教你学会Sql中 ROW_NUMBER的用法
ROW_NUMBER SqlServer 2005 推出的新功能.语法:select *,ROW_Number() over(order by 字段) as '新列名' from table顾名思义: ...
- SQL中Case语句用法讨论
Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END ...
- 数据库SQL中的分钟表示应该使用MI(非常重要的一个问题,以前一直认为和java中一样,用mm就可以表示);校对规则(查询时区分大小写)
java中 之前写java代码的日期表示都是 YYYY-MM-DD HH:mm:SS 其中,MM(一定要大写,代表月份):mm(一定要小写,代表分钟) SQL中 但是在SQL中情况就完全不同了 (原因 ...
- SQL中的declare用法
平时写SQL查询.存储过程都是凭着感觉来,没有探究过SQL的具体语法,一直都是按c#那一套往SQL上模仿,前几天项目中碰到一个问题引起了我对declare定义变量的作用域的兴趣. 大家都知道c# ...
最新文章
- Ubuntu访问Windows共享文件夹
- 一、自然语言处理概述
- php 三方即时通讯_php即时通讯解决方案-请问PHP能否实现即时通讯?
- laravel允许所有网站进行跨域操作
- 数据结构06树和二叉树
- sap原因代码配置路径_如何根据SAP Table找到对应IMG配置?
- 使用Python进行描述性统计
- jdk18安装详细教程
- 如何安装VMware Workstation虚拟机、及注意事项、安装所需的许可证码
- 川土微电子 | CA-IS3050U隔离式CAN收发器
- 计算机语言output,output是什么意思
- 北大AI公开课笔记整理
- Apache和Httpd是什么关系
- 2013 CocoaChina微信精选之技术汇
- 低成本快速开发 LoRa 终端:从 0 到 1
- 企业财务报表查询方式
- php常用的数组相关的函数及面向对象
- Flutter实现一个酷炫带动画的列表型多选日历组件
- 招商银行香港一卡通的猫腻
- CSS @media 查询
热门文章
- 深度学习半自动标注_图像识别中标注工具labelImg的安装和使用——深度学习打标签...
- NOIP普及组第1题(1995-2018)
- GoWorld – 用Golang写一个分布式可扩展、可热更的游戏服务器
- 理解浏览器允许的并发请求资源数
- 日志管理系统的重要性---怼死你的客户
- 当城市实现完全自动驾驶,车该怎么开?人该怎么走?
- 51Nod-1136 欧拉函数【数论】
- 意外发现:网盾升级后支持soso和有道
- ubuntu18.04(python3.6)安装pip3报错:ImportError: cannot import name 'sysconfig'
- 一个低级错误引发Netty编码解码中文异常