模式匹配的简单问题

Jain123 2003-05-09 12:58:21
WHERE ColumnA LIKE '%5/%%' ESCAPE '/'
这句实在是看不懂,大家给解释解释行吗?
越详细越好,初学看不明白啊
谢谢了^_^
...全文
4 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Jain123 2003-05-09
这么多解释,明白啦
谢谢大家!
回复
joygxd 2003-05-09
不包含/的所有数据
回复
joygxd 2003-05-09
查找带有“5%”的字串
回复
查找带有“5%”的字串,如:“111aaa5%bbb222".
ESCAPE '/'的意思是:将'/'后面的"%"不作为模式匹配字符,而是实际的%。

回复
psxfghost 2003-05-09
Jain123(朋克^_^) :对头,就是那个意思!
^_^
回复
CrazyFor 2003-05-09
ESCAPE 'escape_character'
允许在字符串中搜索通配符而不是将其作为通配符使用。escape_character 是放在通配符前表示此特殊用途的字符。


通配符 描述 示例
% 包含零个或更多字符的任意字符串。 WHERE title LIKE '%computer%' 将查找处于书名任意位置的包含单词 computer 的所有书名。
_(下划线) 任何单个字符。 WHERE au_fname LIKE '_ean' 将查找以 ean 结尾的所有 4 个字母的名字(Dean、Sean 等)。
[ ] 指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符。 WHERE au_lname LIKE '[C-P]arsen' 将查找以arsen 结尾且以介于 C 与 P 之间的任何单个字符开始的作者姓氏,例如,Carsen、Larsen、Karsen 等。
[^] 不属于指定范围 ([a-f]) 或集合 ([abcdef]) 的任何单个字符。 WHERE au_lname LIKE 'de[^l]%' 将查找以 de 开始且其后的字母不为 l 的所有作者的姓氏。
回复
yoki 2003-05-09
说得通俗点就是
like '%5%'这种形式你一定明白,不用多说
ESCAPE 你可以看作一个标志
ESCAPE '/'说明 '/'后面的那个字符'%'是当作一个普通字符处理的
即'/'后的那个'%'并不是当作模式匹配字符而值当作'%'字符本身
所以 like '%5/%%' escape '/'表示的含义是包含'5%'的任意字符串
如:5%;125%,5%1;125%%,%125%,125%dd等
不知道这样说你明白没有?
回复
Jain123 2003-05-09
楼上的意思是不是:匹配含有5%的但是其中不包含/的所有数据?
回复
ben988211 2003-05-09
使用 ESCAPE 关键字定义转义符。在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。例如,要搜索在任意位置包含字符串 5% 的字符串,请使用:
WHERE ColumnA LIKE '%5/%%' ESCAPE '/'

回复
psxfghost 2003-05-09
用/转义是因为单独用%在sql中表示匹配任何字符的意思,所以要加/,使它仅仅表示%这个字符
回复
xiyahui 2003-05-09
呵呵这里/作为转义字符存在了也就是说所有/后面跟的模式匹配字符都不在代表模式匹配字符而代表原字符。
这个表示的含义是包含5%的任意字符串。
回复
psxfghost 2003-05-09
在sql中,用like时,%表示可以匹配任何字符,/是转义符,相当于匹配含有5%的任何数据
用escape 是不包含字串,这里是不包含'/'的数据
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2003-05-09 12:58
社区公告
暂无公告