• 通配符过滤


    到目前为止,我们讲解的数据过滤方式都是针对特定值的过滤,比如“检索所有年龄为25的所有员工信息”、“检索所有工资介于2500元至3800元之间的所有记录”,但是这种过滤方式并不能满足一些模糊的过滤方式。比如,检索所有姓名中含有“th”的员工或者检索所有姓“王”的员工,实现这样的检索操作必须使用通配符进行过滤。

    SQL中的通配符过滤使用LIKE关键字,可以像使用OR、AND等操作符一样使用它,它是一个二元操作符,左表达式为待匹配的字段,而右表达式为待匹配的通配符表达式。通配符表达式由通配符和普通字符组成,主流数据库系统支持的通配符有单字符匹配和多字符匹配,有的数据库系统还支持集合匹配。

    • 单字符匹配

    进行单字符匹配的通配符为半角下划线“”,它匹配单个出现的字符。比如通配符表达式“b_d”匹配第一个字符为b、第二个字符为任意字符、第三个字符为d的字符串,“bed”、“bad”都能匹配这个表达式,而“bd”、“abc”、“build”等则不能匹配这个表达式;通配符表达式“_oo”匹配第一个字符为任意字符、第二个字符为o、第三个字符为o、第四个字符为任意字符的字符串,“look”、“took”、“cool”都能匹配这个表达式,而“rom”、“todo”等则不能匹配这个表达式。

    下面来演示一下单字符匹配的用法。我们来检索T_Employee表中FName字段匹配如下规则的数据行:以任意字符开头,剩余部分为“erry”。根据通配符表达式语法,我们得知这个匹配规则对应的通配符表达式为“_erry”,因此编写如下的SQL:

    
    SELECT * FROM T_Employee WHERE FName LIKE "_erry"
    

    执行完毕我们就能在输出结果中看到下面的执行结果:

    “Jerry”、“Kerry”两个字符串能够匹配通配符表达式“_erry”,所以被显示到了结果集中,而其他数据行则由于不匹配此通配符表达式,所以被过滤掉了。

    单字符匹配在通配符表达式中可以出现多次,比如我们要检索长度为4、第三个字符为“n”、其它字符为任意字符的姓名。根据通配符表达式语法,我们得知这个匹配规则对应的通配符表达式为“_n”(注意前两个字符为连续的两个下划线),那么需要编写如下的SQL:

    
    SELECT * FROM T_Employee WHERE FName LIKE "__n_"
    

    执行完毕我们就能在输出结果中看到下面的执行结果:

    • 多字符匹配

    使用下划线可以实现“匹配长度为5、以ab开头、剩余字符任意”的功能,而对于“匹配以k开头,长度不限,剩余字符任意”这样的需求则无法满足,这时就需要使用多字符匹配了。进行多字符匹配的通配符为半角百分号“%”,它匹配任意次数(零或多个)出现的任意字符。比如通配符表达式“k%”匹配以“k”开头、任意长度的字符串,“k”、“kerry”、“kb”都能匹配这个表达式,而“ark”、“luck”、“3kd”等则不能匹配这个表达式;配符表达式“b%t”匹配以“b”开头、以“t”结尾、任意长度的字符串,“but”、“bt”、“belt”都能匹配这个表达式,而“turbo”、“tube”、“tb”等则不能匹配这个表达式。

    下面来演示一下多字符匹配的用法。我们来检索T_Employee表中FName字段匹配如下规则的数据行:以“T”开头长度,长度任意。根据通配符表达式语法,我们得知这个匹配规则对应的通配符表达式为“T%”,因此编写如下的SQL:

    • SELECT * FROM T_Employee WHERE FName LIKE "T%"

    
    执行完毕我们就能在输出结果中看到下面的执行结果:
    
    
    
    接着我们来检索姓名中包含字母“n”的员工信息,编写如下SQL:
    
    * 
    
    SELECT * FROM T_Employee WHERE FName LIKE "%n%"
    

    执行完毕我们就能在输出结果中看到下面的执行结果:

    单字符匹配和多字符匹配还可以一起使用。我们来检索T_Employee表中FName字段匹配如下规则的数据行:最后一个字符为任意字符、倒数第二个字符为“n”、长度任意的字符串。

    根据通配符表达式语法,我们得知这个匹配规则对应的通配符表达式为“%n_”,因此编写如下的SQL:

    • SELECT * FROM TEmployee WHERE FName LIKE "%n"

    ```

    执行完毕我们就能在输出结果中看到下面的执行结果:

  • 相关阅读:
    JQuery对id中含有特殊字符的转义处理
    jquery 将disabled的元素置为enabled的三种方法
    jeecg表单页面控件权限设置(请先看官方教程,如果能看懂就不用看这里了)
    Google调用explorer.exe打开本地文件
    C++ URLDecode和URLEncode实现——仅限gb2312,非utf8
    jeecg小吐槽续——自己折腾修改在线开发功能中“默认值”的使用
    jeecg小吐槽
    vue使用vant时间日期选择器,日期转化
    vue获取图片宽高
    微信公众号h5用户授权
  • 原文地址:https://www.cnblogs.com/yuyu666/p/9820043.html
Copyright © 2020-2023  润新知