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的用法相关推荐

  1. SQL数据库语句中escape的用法及含义

    SQL数据库语句中escape的用法及含义 escape是用来转译的 例如: 数据库中有个表 A字段abc 中存du了字符'%',那么我查询的时候如果只想查询第二位是 '%'的记录就需要进行模糊查询, ...

  2. SQL中Truncate的用法

    转自:https://www.cnblogs.com/zhoufangcheng04050227/p/7991759.html 本文导读:删除表中的数据的方法有delete,truncate, 其中T ...

  3. sql去重复操作详解SQL中distinct的用法

    在表中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值.关键词 distinct用于返回唯一不同的值. 表A: 表B: 1.作用于单列 select dist ...

  4. 【SQL中limit的用法】

    SQL中limit的用法 说明:limit子句用于限制查询结果返回的数量,常用于分页查询. 用法:[select * from tableName limit i,n ] 参数:tableName: ...

  5. SQL中的limit用法

    limit用法 SQL中的limit函数是用来对数据库中的字段进行限制提取的,如:一个用户表中有许多的用户信息,如果想要取出其中某个位置的某几条数据,就可以使用limit函数. 结构 limit函数结 ...

  6. 教你学会Sql中 ROW_NUMBER的用法

    ROW_NUMBER SqlServer 2005 推出的新功能.语法:select *,ROW_Number() over(order by 字段) as '新列名' from table顾名思义: ...

  7. SQL中Case语句用法讨论

    Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END ...

  8. 数据库SQL中的分钟表示应该使用MI(非常重要的一个问题,以前一直认为和java中一样,用mm就可以表示);校对规则(查询时区分大小写)

    java中 之前写java代码的日期表示都是 YYYY-MM-DD HH:mm:SS 其中,MM(一定要大写,代表月份):mm(一定要小写,代表分钟) SQL中 但是在SQL中情况就完全不同了 (原因 ...

  9. SQL中的declare用法

     平时写SQL查询.存储过程都是凭着感觉来,没有探究过SQL的具体语法,一直都是按c#那一套往SQL上模仿,前几天项目中碰到一个问题引起了我对declare定义变量的作用域的兴趣. 大家都知道c# ...

最新文章

  1. Ubuntu访问Windows共享文件夹
  2. 一、自然语言处理概述
  3. php 三方即时通讯_php即时通讯解决方案-请问PHP能否实现即时通讯?
  4. laravel允许所有网站进行跨域操作
  5. 数据结构06树和二叉树
  6. sap原因代码配置路径_如何根据SAP Table找到对应IMG配置?
  7. 使用Python进行描述性统计
  8. jdk18安装详细教程
  9. 如何安装VMware Workstation虚拟机、及注意事项、安装所需的许可证码
  10. 川土微电子 | CA-IS3050U隔离式CAN收发器
  11. 计算机语言output,output是什么意思
  12. 北大AI公开课笔记整理
  13. Apache和Httpd是什么关系
  14. 2013 CocoaChina微信精选之技术汇
  15. 低成本快速开发 LoRa 终端:从 0 到 1
  16. 企业财务报表查询方式
  17. php常用的数组相关的函数及面向对象
  18. Flutter实现一个酷炫带动画的列表型多选日历组件
  19. 招商银行香港一卡通的猫腻
  20. CSS @media 查询

热门文章

  1. 深度学习半自动标注_图像识别中标注工具labelImg的安装和使用——深度学习打标签...
  2. NOIP普及组第1题(1995-2018)
  3. GoWorld – 用Golang写一个分布式可扩展、可热更的游戏服务器
  4. 理解浏览器允许的并发请求资源数
  5. 日志管理系统的重要性---怼死你的客户
  6. 当城市实现完全自动驾驶,车该怎么开?人该怎么走?
  7. 51Nod-1136 欧拉函数【数论】
  8. 意外发现:网盾升级后支持soso和有道
  9. ubuntu18.04(python3.6)安装pip3报错:ImportError: cannot import name 'sysconfig'
  10. 一个低级错误引发Netty编码解码中文异常