sql搜索like通配符的用法详解
来源:互联网 发布:剑三丐帮成女捏脸数据 编辑:程序博客网 时间:2024/06/05 19:37
有很多朋友写了几年的like搜索,可能对like后面通配符的用法都不了解,甚至于%的作用是什么都不清楚。在这篇文章中,我们就一起来学习一下like查询中通配符的用法吧。
我们写的最多的查询语句可能是这样的
那么,上面sql语句中的%是起什么作用呢?
%,sql中查询通配符,它匹配包含零个或多个字符的任意字符串
比如上面sql的意思就是查询出name中包含'sql技术'的所有记录。
因为%匹配零个或者多个字符。我们可以只使用一个%来查询只是开始或结尾处包含'sql技术'的所有记录,分别如下:
1,查询所有name字段以sql技术开头的记录。
2,查询所有name字段以sql技术结尾的记录。
除了%外,可能我们有忽略掉sql中另一个通配符了,它就是下划线'_'。
_,匹配sql中任何单个字符
比如下面的sql
那么它将返回所有name长度为4,且以'bcd'结尾的所有记录,比如abcd,ebcd都会满足查询条件,但aebcd就不满足了,因为_是匹配单个字符。
有了匹配单个与多个字符的方法了,那么有没有匹配指定范围内字符的写法呢?这个当然也是有的。就是使用范围符中括号'[]'了。
[],指定[]内标识范围或集合中的任何单个字符
比如,看下面的sql的写法:
1,返回name字段以a或者b或者c开头的所有记录
2,返回name字段以a或者b或者c结尾的所有记录
[]中集合还有一种写法,就是以-来表示从某字符开始,到某字符结束。比如下面的sql语句
它表示查询hr_staff表中name字段所有从a开始,到c结束开头的记录,它的作用与select * from hr_staff where name like '[a,b,c]%'是一样的。还有[0-9]表示匹配从0到9中的任意数字。
有了在范围内的写法,对应就会有不在范围内的写法:
[^],表示不属于[]指定范围或集合的任何单个字符
比如:[^0-9]表示不匹配任何数字。
示例:我们要查询表table1的col1列全为数字的记录,sql语句可以这样写:
我们写的最多的查询语句可能是这样的
select * from computes where 字段 name '%sql技术%'
那么,上面sql语句中的%是起什么作用呢?
%,sql中查询通配符,它匹配包含零个或多个字符的任意字符串
比如上面sql的意思就是查询出name中包含'sql技术'的所有记录。
因为%匹配零个或者多个字符。我们可以只使用一个%来查询只是开始或结尾处包含'sql技术'的所有记录,分别如下:
1,查询所有name字段以sql技术开头的记录。
select * from computes where 字段 name 'sql技术%'
2,查询所有name字段以sql技术结尾的记录。
select * from computes where 字段 name '%sql技术'
除了%外,可能我们有忽略掉sql中另一个通配符了,它就是下划线'_'。
_,匹配sql中任何单个字符
比如下面的sql
select * from hr_staff where name like '_bcd'
那么它将返回所有name长度为4,且以'bcd'结尾的所有记录,比如abcd,ebcd都会满足查询条件,但aebcd就不满足了,因为_是匹配单个字符。
有了匹配单个与多个字符的方法了,那么有没有匹配指定范围内字符的写法呢?这个当然也是有的。就是使用范围符中括号'[]'了。
[],指定[]内标识范围或集合中的任何单个字符
比如,看下面的sql的写法:
1,返回name字段以a或者b或者c开头的所有记录
select * from hr_staff where name like '[a,b,c]%'
2,返回name字段以a或者b或者c结尾的所有记录
select * from hr_staff where name like '%[a,b,c]'
[]中集合还有一种写法,就是以-来表示从某字符开始,到某字符结束。比如下面的sql语句
select * from hr_staff where name like '[a-c]%'
它表示查询hr_staff表中name字段所有从a开始,到c结束开头的记录,它的作用与select * from hr_staff where name like '[a,b,c]%'是一样的。还有[0-9]表示匹配从0到9中的任意数字。
有了在范围内的写法,对应就会有不在范围内的写法:
[^],表示不属于[]指定范围或集合的任何单个字符
比如:[^0-9]表示不匹配任何数字。
示例:我们要查询表table1的col1列全为数字的记录,sql语句可以这样写:
select * from table1 where col1 not like '%[^0-9]%'
好了,看完这篇文章后,有没有觉的对sql的查询又有了新的了解呢,呵呵,欢迎大家一起讨论。
来源于http://www.lmwlove.com/ac/ID878
- sql搜索like通配符的用法详解
- sql中like和通配符的用法
- SQL LIKE通配符的使用
- SQL Like 通配符特殊用法:Escape
- sql中的like通配符用法大全
- Access里like的通配符用法
- SQL语句 SELECT LIKE like用法详解
- SQL语句 SELECT LIKE like用法详解
- SQL语句 SELECT LIKE like用法详解
- SQL语句 SELECT LIKE like用法详解
- SQL语句 SELECT LIKE like用法详解
- sql 通配符%like的存储过程 %
- 通配符和like用法
- SQL Server:SQL Like 通配符特殊用法:Escape
- SQL Server:SQL Like 通配符特殊用法:Escape
- SQL Server:SQL Like 通配符特殊用法:Escape
- SQL LIKE的用法
- SQL LIKE的用法
- android 加入广告的方法
- FTP出现500 OOPS: cannot change directory
- ORACLE 创建视图时,提示用户权限不足
- oracle数据库锁定与解锁
- poj 3696 The Luckiest number
- sql搜索like通配符的用法详解
- exp和imp注意事项
- Jetty 的工作原理以及与 Tomcat 的比较
- 【代码大全】第31章 - 第34章
- Django1.5:(二)创建第一个Django应用4
- c.vim
- Regular Expression Matching
- 标准C++中的string类的用法总结----------http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html
- 面试题目搜集