模式匹配的简单问题

Jain123 2003-05-09 12:58:21
WHERE ColumnA LIKE '%5/%%' ESCAPE '/'
这句实在是看不懂,大家给解释解释行吗?
越详细越好,初学看不明白啊
谢谢了^_^
...全文
35 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jain123 2003-05-09
  • 打赏
  • 举报
回复
这么多解释,明白啦
谢谢大家!
joygxd 2003-05-09
  • 打赏
  • 举报
回复
不包含/的所有数据
joygxd 2003-05-09
  • 打赏
  • 举报
回复
查找带有“5%”的字串
愉快的登山者 2003-05-09
  • 打赏
  • 举报
回复
查找带有“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 是不包含字串,这里是不包含'/'的数据

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧