• SQL:Like 通配符及特殊用法Escape


    摘自:http://www.sqlstudy.com/sql_article.php?id=2008061601

    %:匹配零个及多个任意字符; _:与任意单字符匹配; []:匹配一个范围; [^]:排除一个范围

    SymbolMeaning
    like '5[%]' 5%
    like '[_]n' _n
    like '[a-cdf]' a, b, c, d, or f
    like '[-acdf]' -, a, c, d, or f
    like '[[]' [
    like ']' ]
    like 'abc[_]d%' abc_d and abc_de
    like 'abc[def]' abcd, abce, and abcf
    like '[^1-9]' 0
    like '[^1-9b-z]' 0, a

    对于字符串中出现的特殊字符:'%','[','[]', '_' 可以使用 '[]' 把它们包含起来, 这样在匹配模式(pattern)中,它们就被当作普通字符对待了。

    1. 用 like '[[]' 匹配特殊字符 '['

    select 1 where '[ABCDE' like '[[]%'

    2. 用 like ']' 匹配特殊字符 ']'

    select 1 where ']ABCDE' like ']%'

    3. 用 like '[[]]' 匹配特殊字符 '[]'

    select 1 where '[]ABCDE' like '[[]]%%'

    4. 用 like '[_]' 匹配特殊字符 '_'

    select 1 where '_ABCDE' like '[_]%'

    5. 用 like '[%]' 匹配特殊字符 '%'

    select 1 where 'ABC%DE' like 'ABC[%]DE'

    对于其他的特殊字符:'^', '-', ']' 因为它们本身在包含在 '[]' 中使用,所以需要用另外的方式来转义,于是就引入了 like 中的 escape 子句,另外值得注意的是:escape 可以转义所有的特殊字符。

    select 1 where '^ABCDE' like '!^ABCDE' escape '!'
    select 1 where '-ABCDE' like '!-ABCDE' escape '!'
    select 1 where ']ABCDE' like '!]ABCDE' escape '!'
    
    select 1 where '%ABCDE' like '\%ABCDE' escape '\'
    select 1 where '%ABCDE' like '!%ABCDE' escape '!'
    select 1 where '%ABCDE' like '#%ABCDE' escape '#'
    select 1 where '%ABCDE' like '@%ABCDE' escape '@'
    
    select 1 where '[ABCDE' like '![ABCDE' escape '!'
    select 1 where ']ABCDE' like '!]ABCDE' escape '!'
    

    看出规律了吧,就是用 escape 后面紧跟着的字符来做转义字符。 escape 后面的字符相当于 C 语言字符串中的转义字符 '\'。

    最后,看一个更加复杂的匹配

    select 1 where '[^A-Z]ABCDE' like '\[\^A\-Z\]%' escape '\'




  • 相关阅读:
    浏览器渲染流程
    MVC模式
    传统的DOM是如何进行渲染的
    报文的概念及理解
    单页面开发与多页面开发的优缺点
    第4次作业
    售票系统
    第三次作业
    第二次作业
    第一次作业
  • 原文地址:https://www.cnblogs.com/KeenLeung/p/2776297.html
Copyright © 2020-2023  润新知