在sql语句中,like所有的用法

时间:2021.08.20 发布人:CAIMIAOJUN1020

在sql语句中,like所有的用法

已解决问题

谷歌CAIMIAOJUN1020用户在2021.08.20提交了关于“詹姆斯在sql语句中,like所有的用法”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-02-25T14:48:52。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,千言万语,表达不了我的感激之情,我已铭记在心 !

希望以下的回答,能够帮助你。

第1个回答

用户名:匿名用户  

在sql结构化查询方轻职据语言中,like语句有着至关重要的作用。

like语句的语法格式是:select*from表名where字段名like对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包扩弦持价任协话学触京座含对应子串的。

A:%包含零抓谁门条验氢转财个或多个字符的任意字符串:

1、like'M照苦西刘异封构轴征c%'将搜索以字母Mc开头的所有字符串(如McBadden)。

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

3、like'%en%'将搜索在任何位置包含字母en的所有字符串(如Bennet、Green、McBadde破示议n)。

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

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

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

1,like'[CK]ars[eo]n'将搜索下列字符串:Carsen、Karsen、Carson和Karson(如Carson)。

2、like'[M-Z]ing系接权显才绝校两好er'将搜索以字符串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。

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

例1,查询name字段中包无座执困含有“明”字的。

select*fromtable1wherenamelike必士力维'%明%'

例2,查询n占核火裂早阻ame字段中以“李”字开头。

select*fromtable1直德演鸡政wherenamelike'李*'

例3,查询name字段中含有数字的。

含冲成验伯径门福select*from风称源table1wherenamelike'%[0-9]%'

例4,查询name字段中含有小写字母的。

select*fromtable1wherenamelike'%[a-z]%'

例5,查询name字段中不含有数字的。

select*fromtable1wherenamelike'%[!0-9]%'

以上例子能列出什么值来显而易见。但在这里,我们着重要说明的是通配符“*”与“%”的区别。

很多朋友会问,为什么我在以上查询时有个别的表示所有字符的时候用"%"而不用“*”?先看看下面的例子能分别出现什么结果:

select*fromtable1wherenamelike'*明*'

select*fromtable1wherenamelike'%明%'

大家会看到,前一条语句列出来的是所有的记录,而后一条记录列出来的是name字段中含有“明”的记录,所以说,当我们作字符型字段包含一个子串的查询时最好采用“%”而不用“*”,用“*”的时候只在开头或者只在结尾时,而不能两端全由“*”代替任意字符的情况下。