注册 登录
编程论坛 SQL Server论坛

like與通配符

rgbtdkjcel 发布于 2009-08-06 16:26, 772 次点击
insert into sql values(5,'ad__a')
insert into sql values(5,'adacaaa')
insert into sql values(5,'ada_acd')

select * from sql where detail like 'adc_%' escape 'c'



上述中。為何查詢語句只能查出一條呢??而不是所有的記錄都顯示呢?
5 回复
#2
Mo诫2009-08-07 10:32
这位朋友,你没明白%号的真正意义吧!
'李%'  ------------->姓李的全部记录
'%李'  ------------->以李结尾的全部记录
'%李%' ------------->含有李的全部记录

仁兄的select * from sql where detail like 'adc_%' escape 'c'
就是要查询'abc%'记录。够了哈
#3
lee7yy2009-08-16 23:54
后面的那个escape 'c'是嘛意思?
#4
subMain2009-08-20 23:13
escape 'c'
它的意思就是将'adc_%'中的字符c后面的通配符"_"看做一个普通字符,,所以你只能查出第一条记录。。
select * from sql where detail like 'adc_%'
假如like后面没有加escape关键字,下面的几个绿色的值是能被被查出来的,红色的值是查不出来的:
adc1
adc23
adcyec

adc
select * from sql where detail like 'adc_%' escape 'c'
假如like后面加了escape关键字,下面的几个绿色的值是能被被查出来的,红色的值是查不出来的:
ad_
ad__
ad_123

ad
adc_
adc
adcr
#5
xiaobin90152009-09-04 10:17
ding
#6
lls4070636742009-09-06 12:10
这位朋友,你没明白%号的真正意义吧!
'李%'  ------------->姓李的全部记录
'%李'  ------------->以李结尾的全部记录
'%李%' ------------->含有李的全部记录

仁兄的select * from sql where detail like 'adc_%' escape 'c'
就是要查询'abc%'记录
escape 'c'
它的意思就是将'adc_%'中的字符c后面的通配符"_"看做一个普通字符,,所以你只能查出第一条记录。。
select * from sql where detail like 'adc_%'
假如like后面没有加escape关键字,下面的几个绿色的值是能被被查出来的,红色的值是查不出来的:
adc1
adc23
adcyec
adc
select * from sql where detail like 'adc_%' escape 'c'
假如like后面加了escape关键字,下面的几个绿色的值是能被被查出来的,红色的值是查不出来的:
ad_
ad__
ad_123
ad
adc_
adc
adcr
1