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

  • 相关阅读:
    vscode开发环境安装配置-连载【2】-企业级系统开发实战连载系列 -技术栈(vue、element-ui、qt、c++、sqlite)
    nodejs开发环境安装-连载【1】-企业级系统开发实战连载系列 -技术栈(vue、element-ui、qt、c++、sqlite)
    vs 2015 菜单重复的问题解决方法
    ecshop代码详解之init.php
    前端jquery实现点击图片弹出大图层(且滚动鼠标滑轮图片缩放)
    thinkPHP中省市级联下拉列表
    mysql函数date_format统计刷选按年月日统计的数据
    jQuery插件实现select下拉框左右选择_交换内容(multiselect2side)
    php代码生成二维码
    ASP.NET无效的视图
  • 原文地址:https://www.cnblogs.com/jimeper/p/724651.html
Copyright © 2020-2023  润新知