注意:搜索可以区分大小写,也可以不区分大小写。

LIKE 操作符

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式或取值。

语法

SELECT 列名 FROM 表名 WHERE 列名 LIKE 模式或取值;

注意:

1、在没有通配符时,LIKE 操作符与等号(=)的效果一样,不光可以在 SELECT 语句中使用 LIKE 操作符,也可以在 UPDATE、DELETE等语句中使用 LIKE 操作符。

2、LIKE 操作符匹配整个列,如果被匹配的文本在列值中出现,LIKE 将不会找到它,相应的行也不被返回(除非使用通配符)。(也可以使用正则表达式代替 LIKE操作符)。

通配符

通配符用来匹配值的一部分的特殊字符,通配符本身实际是 SQL 的 WHERE 子句中有特殊含义的字符,使用通配符时必须使用 LIKE 操作符。

SQL支持的通配符:

通配符 描述
% 替代0个或多个字符
_ 替代一个字符
[charlist] 字符列中的任何单一字符

[^charlist] 或者 [!charlist]

不在字符列中的任何单一字符

注意:

1、MySQL 、SQLite 只支持百分号(%)和 下划线(_)通配符,不支持 [^charlist] 或 [!charlist] 通配符(微软的Access 、 SQL Server以及其他公司的数据库管理软件支持,但微软有时候的通配符不支持百分号(%),而是用星号(*),具体看对应软件说明。

2、通配符和正则不是一回事。

3、不要过度使用通配符或非必须使用通配符时尽量不要使用通配符,它会降低搜索性能,增加性能负担。

百分号(%)通配符

%表示任何字符出现任意次数。语法:

SELECT 列名 FROM 表名 WHERE 列名 LIKE '%字符';
或是
SELECT 列名 FROM 表名 WHERE 列名 LIKE '字符%';
或是
SELECT 列名 FROM 表名 WHERE 列名 LIKE '%字符%';

语法举例(以 字母A 为例):

'%A'   代表以A结尾的数据,例如:BBA、acbA、AA等都符合。
'A%'   代表以A开头的数据,例如:ACB、Add、Ab等都符合。
'%A%'  代表含有A的数据,例如:CAC,AAA,bAc等都符合。

注意:

1、除了一个或多个字符外,百分号(%)能匹配0个字符。%代表搜索模式中给定位置的0个、1个或多个字符。

2、尾空格可能会干扰通配符匹配,例如在使用 ‘%符号’ 时,若符号后面若有空格则会影响结果匹配,解决方法可以在符号后面加一个百分号(%)或是使用函数去除尾空格。

3、虽然似乎%通配符可以匹配任何东西,但是百分号(%)不能匹配 NULL ,即使使用'%'也不能匹配NULL。

下划线(_)通配符

只适用于匹配单个字符,用途与百分号(%)一样。语法:

SELECT 列名 FROM 表名 WHERE 列名 LIKE '_字符';
或是
SELECT 列名 FROM 表名 WHERE 列名 LIKE '字符_';
或是
SELECT 列名 FROM 表名 WHERE 列名 LIKE '_字符_';

语法举例(以 字母A为例):

'_A_'    代表三位且中间字母是A的。
'_A'     代表两位且结尾字母是A的。
'A_'     代表两位且开头字母是A的。

中括号([ ])通配符

用途与百分号(%)和下划线(_)一样。

注意:不是所有数据管理软件都支持中括号([ ])通配符,例如MySQL不支持。

语法

SELECT 列名 FROM 表名 WHERE 列名 LIKE '[字符]%';
或是
SELECT 列名 FROM 表名 WHERE 列名 LIKE '[字符]_';
或是
SELECT 列名 FROM 表名 WHERE 列名 LIKE '%[字符]%';
或是
SELECT 列名 FROM 表名 WHERE 列名 LIKE '_[字符]_';
或是
SELECT 列名 FROM 表名 WHERE 列名 LIKE '%[字符]_';
等等

语法举例:

1、从 city 表中搜索name列中以'A' 或 'L'或 'N' 开头的:

SELECT name
FROM city
WHERE name LIKE '[ALN]%';

2、从 city 表中搜索name列中不以'A' 或 'L'或 'N' 开头的:

SELECT name
FROM city
WHERE name LIKE '[!ALN]%';

SQL LIKE操作符、通配符以及通配符的使用相关推荐

  1. SQL基础六【使用通配符过滤】

    like操作符 如果想找出名称包含bean bag的所有产品,可以构造一个通配符搜索模式. 通配符:用来匹配值得一部分的特殊字符. 搜索模式:由字面值,通配符或者两者组合构成的搜索条件. 通配符搜索只 ...

  2. SQL LIKE 操作符

    SQL LIKE 操作符 LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式. SQL LIKE 操作符 LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式. SQL LIKE 语 ...

  3. SQL LIKE操作符

    LIKE操作符用于在WHERE子句中搜索列中的指定模式. LIKE操作符 LIKE 操作符用于在WHETE子句中搜索列中的指定模式. SQL LIKE操作符语法 原始的表(用在列子中的): Stude ...

  4. SQL UNION 操作符

    SQL UNION 操作符合并两个或多个 SELECT 语句的结果. 请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每个 SELECT 语句 ...

  5. java泛型程序设计——通配符类型+通配符的超类型限定

    [0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 通配符类型+通配符的超类型限定 的知识: [1]通配符类型相关 1. ...

  6. SQL 高级教程:SQL BETWEEN 操作符

    SQL 高级教程:SQL BETWEEN 操作符 BETWEEN 操作符在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围. BETWEEN 操作符 操作符 BETWEEN - AND 会 ...

  7. python正则表达式通配符_URL 通配符与正则表达式

    1.通配符: 通配符,即 * 符号,可以添加在url中,代替任意字符.假设您添加的网站域名是url.com,则通配符的使用规则如下: 网站域名后不能直接添加通配符,如url.com这种方式会提示错误: ...

  8. SQL BETWEEN 操作符

    SQL BETWEEN 操作符 SQL BETWEEN操作符 BETWEEN操作符用于选取介于两个值之间的数据范围值. BETWEEN操作符选取介于两个值之间的数据范围内的值.这些值可以是数值,文本或 ...

  9. sql like语句中的通配符:百分号、下划线和escape

    就像我们平时用的*和?,sql的like语句中,使用%和_来代表任意多个字符和一个字符 Sql代码   # %代表任意多个字符 select * from user where username li ...

最新文章

  1. Redis 笔记(15)— 管道 pipeline(客户端将批量命令打包发送用来节省网络开销)
  2. SAP WM 采购订单收货后LT06上架界面弹出的QM Sample小窗口如何不让其出现?
  3. spring boot / cloud (二) 规范响应格式以及统一异常处理
  4. 你必须懂也可以懂的微服务系列三:服务调用
  5. 利用go语言创建web server的两种方式
  6. JavaScript组件之JQuery(A~Z)教程(基于Asp.net运行环境)[示例代码下载](一)
  7. 详解队列在前端的应用,深剖JS中的事件循环Eventloop,再了解微任务和宏任务
  8. 方法论:如何从0到1搭建一套完整的邀请体系
  9. hibernateTemplate 的find 查找方法
  10. Java使用swagger时显示实体类注解问题
  11. python map对象
  12. 第一次用联接查询语句,豁然开朗!!
  13. java调用opencv人脸识别 error insufficient out of memory
  14. KK课表抓取教务系统
  15. thinkphp 页面上循环checkbox选择的值和radio混用,if判断
  16. web前端学习的职业发展方向
  17. [转载]使用 Apache Geronimo 和 JMS 构建事件驱动的框架
  18. 未来IT行业前景如何?
  19. c语言程序设计基础计算存款利息,《C语言及程序设计》实践参考——定期存款利息计算器...
  20. 【UE4】GamePlay框架简介(蓝图)

热门文章

  1. 内存屏障(Memory Barrier)与volatile
  2. 关于幂级数求导/积分后幂级数收敛域变化的问题
  3. Echar 制作图表+查询数据
  4. “三天打鱼两天晒网”程序的c语言实现
  5. MAGIC: 即插即用、无需训练的图像-文本生成框架
  6. mysql 随机六位数_用SQL怎么写一个生成随机的六位数?
  7. 在VS Studio中管理多个cpp文件或项目
  8. 【Runge-Kutta】龙格库塔不同步长积分到终点不一样
  9. mac 电脑连接金税盘usb口
  10. pdf批量下载工具制作_使用asyncio异步高速下载pdf