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
       
       
    在查询前将待查字符串先经该函数处理即可。

  • 相关阅读:
    PHP操作MYSQL数据库
    微信DLL劫持反弹shell复现
    ERROR Invalid options in vue.config.js: "baseUrl" is not allowed
    求曲线y=lnx在区间(2,6)内的一条切线,使得该切线与直线x=2,x=6及曲线y=lnx所围成的图形的面积最小。
    CentOS、Ubuntu、Debian三个linux比较异同
    jpa模糊查询(表中的某些数据)
    jpa查找数据库最新一条消息
    在@Data注释lombok上使用继承警告等于/ hashCode(Warning equals/hashCode on @Data annotation lombok with inheritance)
    git基本操作
    远程分支git换地址了,本地重新关联
  • 原文地址:https://www.cnblogs.com/jimeper/p/724651.html
Copyright © 2011-2022 走看看