SQL查询语句中SELECT LIKE用法详解

 我来答
须庸镜雅艳
2019-04-10 · TA获得超过3657个赞
知道大有可为答主
回答量:3193
采纳率:28%
帮助的人:207万
展开全部
在SQL结构化查询语言中,LIKE语句有着至关重要的作用。

LIKE语句的语法格式是:
select
*
from
表名
where
字段名
like
对应值(子串),
它主要是针对字符型字段的它的作用是在一个字符型字段列中检索包含对应子串的。

A:%
包含零个或多个字符的任意字符串:

1、LIKE'Mc%'
将搜索以字母
Mc
开头的所有字符串(如
McBadden)。

2、LIKE'%inger'
将搜索以字母
inger
结尾的所有字符串(如
Ringer、Stringer)。

3、LIKE'%en%'
将搜索在任何位置包含字母
en
的所有字符串(如
Bennet、Green、McBadden)。

B:_(下划线)
任何单个字符:

LIKE'_heryl'
将搜索以字母
heryl
结尾的所有六个字母的名称(如
Cheryl、Sheryl)。

C:
[
]
指定范围
([a-f])
或集合
([abcdef])
中的任何单个字符:

1,

LIKE'[CK]ars[eo]n'
将搜索下列字符串:
Carsen、Karsen、Carson

Karson(如
Carson)。

2、LIKE'[M-Z]inger'
将搜索以字符串
inger
结尾、以从
M

Z
的任何单个字母开头的所有名称(如
Ringer)。

D:
[^]
不属于指定范围
([a-f])
或集合
([abcdef])
的任何单个字符:

LIKE'M[^c]%'
将搜索以字母
M
开头,
并且第二个字母不是
c
的所有名称(如MacFeather)。

E:
*
它同于DOS命令中的通配符,
代表多个字符:

c*c代表cc,cBc,cbc,cabdfec等多个字符。

F:
?同于DOS命令中的?通配符,
代表单个字符
:b?b代表brb,bFb等

G:
#
大致同上,
不同的是代只能代表单个数字。
k#k代表k1k,k8k,k0k。

F:
[!]
排除
它只代表单个字符

下面我们来举例说明一下:

例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字段中含有“明”的记录,
所以说当我们作字符型字段包含一个子串的查询时最好采用“%”而不用“*”,
用“*”的时候只在开头或者只在结尾时而不能两端全由“*”代替任意字符的情况下。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式