zoukankan      html  css  js  c++  java
  • zz sql 通配符以及转义字符用法

     

    来源:http://www.w3school.com.cn/sql/sql_wildcards.asp

    SQL 通配符

    在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。

    SQL 通配符必须与 LIKE 运算符一起使用。

    在 SQL 中,可使用以下通配符:

    通配符 描述
    % 替代一个或多个字符
    _ 仅替代一个字符
    [charlist] 字符列中的任何单一字符

    [^charlist]

    或者

    [!charlist]

    不在字符列中的任何单一字符

    原始的表 (用在例子中的):

    Persons 表:

    Id LastName FirstName Address City
    1 Adams John Oxford Street London
    2 Bush George Fifth Avenue New York
    3 Carter Thomas Changan Street Beijing

    使用 % 通配符

    例子 1

    现在,我们希望从上面的 "Persons" 表中选取居住在以 "Ne" 开始的城市里的人:

    我们可以使用下面的 SELECT 语句:

    SELECT * FROM Persons
    WHERE City LIKE 'Ne%'

    结果集:

    Id LastName FirstName Address City
    2 Bush George Fifth Avenue New York

    例子 2

    接下来,我们希望从 "Persons" 表中选取居住在包含 "lond" 的城市里的人:

    我们可以使用下面的 SELECT 语句:

    SELECT * FROM Persons
    WHERE City LIKE '%lond%'

    结果集:

    Id LastName FirstName Address City
    1 Adams John Oxford Street London

    使用 _ 通配符

    例子 1

    现在,我们希望从上面的 "Persons" 表中选取名字的第一个字符之后是 "eorge" 的人:

    我们可以使用下面的 SELECT 语句:

    SELECT * FROM Persons
    WHERE FirstName LIKE '_eorge'

    结果集:

    Id LastName FirstName Address City
    2 Bush George Fifth Avenue New York

    例子 2

    接下来,我们希望从 "Persons" 表中选取的这条记录的姓氏以 "C" 开头,然后是一个任意字符,然后是 "r",然后是任意字符,然后是 "er":

    我们可以使用下面的 SELECT 语句:

    SELECT * FROM Persons
    WHERE LastName LIKE 'C_r_er'

    结果集:

    Id LastName FirstName Address City
    3 Carter Thomas Changan Street Beijing

    使用 [charlist] 通配符

    例子 1

    现在,我们希望从上面的 "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人:

    我们可以使用下面的 SELECT 语句:

    SELECT * FROM Persons
    WHERE City LIKE '[ALN]%'

    结果集:

    Id LastName FirstName Address City
    1 Adams John Oxford Street London
    2 Bush George Fifth Avenue New York

    例子 2

    现在,我们希望从上面的 "Persons" 表中选取居住的城市不以 "A" 或 "L" 或 "N" 开头的人:

    我们可以使用下面的 SELECT 语句:

    SELECT * FROM Persons
    WHERE City LIKE '[!ALN]%'

    结果集:

    Id LastName FirstName Address City
    3 Carter Thomas Changan Street Beijing

    一、搜索通配符字符的说明
    可以搜索通配符字符。有两种方法可指定平常用作通配符的字符:

    使用 ESCAPE 关键字定义转义符。在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。例如,要搜索在任意位置包含字符串 5% 的字符串,请使用:
    WHERE ColumnA LIKE '%5/%%' ESCAPE '/'

    在上述 LIKE 子句中,前导和结尾百分号 (%) 解释为通配符,而斜杠 (/) 之后的百分号解释为字符 %。

    在方括号 ([ ]) 中只包含通配符本身。要搜索破折号 (-) 而不是用它指定搜索范围,请将破折号指定为方括号内的第一个字符:
    WHERE ColumnA LIKE '9[-]5'

    下表显示了括在方括号内的通配符的用法。

    符号 含义
    LIKE '5[%]' 5%
    LIKE '5%' 5 后跟 0 个或更多字符的字符串
    LIKE '[_]n' _n
    LIKE '_n' an, in, on (and so on)
    LIKE '[a-cdf]' a, b, c, d, or f
    LIKE '[-acdf]' -, a, c, d, or f
    LIKE '[ [ ]' [
    LIKE ']' ]


    二、实例说明:

    在表PersonalMember中查找strloginname字段中含有"["的记录。


    可用三条语句:
    1、
    select strloginname,* from PersonalMember where strloginname like '%\[%' escape '\'

    2、(说明"\"与"/"均可与escape关键字结合作为转义符)
    select strloginname,* from PersonalMember where strloginname like '%/[%' escape '/'

    3、
    select strloginname,* from dbo.PersonalMember where charindex('[',strloginname)>0

    原文出自【比特网】,转载请保留原文链接:http://server.chinabyte.com/196/2646196.shtml

  • 相关阅读:
    [CareerCup] 4.4 Create List at Each Depth of Binary Tree 二叉树的各层创建链表
    [CareerCup] 4.3 Create Minimal Binary Search Tree 创建最小二叉搜索树
    [CareerCup] 4.2 Route between Two Nodes in Directed Graph 有向图中两点的路径
    [ZT] 医学图像分析相关的会议
    [CareerCup] 4.1 Balanced Binary Tree 平衡二叉树
    [CareerCup] 3.7 Adopt Animal 领养动物
    [LeetCode] 241. Different Ways to Add Parentheses 添加括号的不同方式
    OpenCV Save CvRect to File 保存CvRect变量到文件
    [CareerCup] 3.6 Sort Stack 栈排序
    [CareerCup] 3.5 Implement Queue using Two Stacks 使用两个栈来实现队列
  • 原文地址:https://www.cnblogs.com/finallyliuyu/p/1925714.html
Copyright © 2011-2022 走看看