zoukankan      html  css  js  c++  java
  • SQL模糊查询

      SQL模糊查询

    SQL模糊查询的语法为
        “SELECT column FROM table WHERE column LIKE ';pattern';”

       
        SQL
    提供了四种匹配模式:
        1. %
    表示任意0个或多个字符。如下语句:
            SELECT * FROM user WHERE name LIKE ';%
    %';
       
    将会把name张三三脚猫唐三藏等等有的全找出来;
       
        2. _
    表示任意单个字符。语句:
            SELECT * FROM user WHERE name LIKE ';_
    _';
       
    只找出唐三藏这样name为三个字且中间一个字是的;
            SELECT * FROM user WHERE name LIKE ';
    __';
       
    只找出三脚猫这样name为三个字且第一个字是的;
       
        3.
    [ ] 表示括号内所列字符中的一个(类似与正则表达式)。语句:
            SELECT * FROM user WHERE name LIKE ';[
    张李王]';
       
    将找出张三李三王三(而不是张李王三);
           
       
    [ ] 内有一系列字符(01234abcde之类的)则可略写为“0-4”“a-e”
            SELECT * FROM user WHERE name LIKE ';
    [1-9]';
       
    将找出1”2”……9”
       
    如要找“-”字符请将其放在首位:';张三[-1-9]';
       
        4.
    [^ ] 表示不在括号所列之内的单个字符。语句:
            SELECT * FROM user WHERE name LIKE ';[^
    张李王]';
       
    将找出不姓赵三孙三等;
            SELECT * FROM user WHERE name LIKE ';
    [^1-4]';
       
    将排除1”4”寻找5”6”……9”
       
       
    !最后是重点!
       
    由于通配符的缘故,导致我们查询特殊字符“%”“_”“[”“';”的语句无法正常实现,而把特殊字符用“[ ]”括起便可正常查询。据此我们写出以下函数:
       
        function sqlencode(str)
         str=replace(str,"';","';';")
         str=replace(str,"[","[[]") ';
    此句一定要在最先
         str=replace(str,"_","[_]")
         str=replace(str,"%","[%]")
         sqlencode=str
        end function
       
       
    在查询前将待查字符串先经该函数处理即可。

  • 相关阅读:
    白盒测试
    测试闰年
    黑盒测试
    等价类划分(2)
    等价类的划分
    《挑战程序设计竞赛》2.3 动态规划-优化递推 POJ1742 3046 3181
    《挑战程序设计竞赛》2.5 最短路 AOJ0189 2249 2200 POJ3255 2139 3259 3268(5)
    《挑战程序设计竞赛》2.6 数学问题-快速幂运算 POJ1995
    《挑战程序设计竞赛》2.6 数学问题-素数 AOJ0009 POJ3126 3421 3292 3641
    《挑战程序设计竞赛》2.6 数学问题-辗转相除法 AOJ0005 POJ2429 1930(1)
  • 原文地址:https://www.cnblogs.com/jimeper/p/724651.html
Copyright © 2011-2022 走看看