zoukankan      html  css  js  c++  java
  • MySQL ---- 过滤数据 通配符 like (七)

    like操作符:对于未知的进行搜索,结合通配符使用

    通配符(wildcard): 用来匹配值得一部分的特殊字符

    搜索模式(search pattern):由字面值、统配符或两者组合的搜索模式

    注意:

      1、通配符本身是SQL 的WHERE 子句有特殊含义的字符,常见的有百分号(%)通配符 和下划线(_)通配符。

      2、在使用通配符时必须使用like 操作符,like后跟的搜索模式利用通配符进行匹配

      3、操作符在作为谓词(predicat)时,不是操作符,从技术上讲Like 是谓词不是操作符

    one、百分号(%)通配符: 表示任何字符出现任意次数,就是可以代表多个单词

    %放在最后时

    -- 检索商品名是 jet开头的商品
    select prod_id,prod_name,prod_price from products where prod_name like 'jet%' order by prod_price;

     放在两端时,匹配位置包含 ton 文本的值,不论之前或之后出现 什么字符

    -- 检索商品名中 有ton 的商品
    select prod_id,prod_name,prod_price from products where prod_name like '%ton%' order by prod_price;

     放在中间

    -- 检索商品名以2 开头 l  结尾的商品
    select prod_id,prod_name,prod_price from products where prod_name like '2%l' order by prod_price;

     注意:

      1、除了一个或多个字符外,%还能匹配0个字符

      2、尾空格可能会干扰通配符的匹配,因为空格也属于字符,空白字符

      3、%通配符匹配不了NULL

    two、下划线(_)通配符:只匹配单个字符

    -- 商品名首字母忘了,但是知道后面的
    select prod_id,prod_name,prod_price from products where prod_name like '_ ton anvil';

     

     百分号(%)是可以匹配0个到多个字符的,下划线只能匹配一个

     注意: 通配符的搜索处理比其他的搜索所花的时间更长,所以

        1、不要过度使用通配符,如果通过其他操作符可以查到,尽量不用通配符

      2、使用的话,也要注意不要把通配符放到开始处,这样搜索是最慢的

      3、注意放置的位置,放错位置的话,返回的可能不是你想要的

      

  • 相关阅读:
    使用mysqltools配置读写分离环境
    mysql group replication 主节点宕机恢复
    django ---- models继承
    django -- 对模式进行调式(pay with the api)
    django -- 多对多关系的实现
    django -- verbose_name的对数据库层面的影响
    django -- model中只有Field类型的数据才能成为数据库中的列
    django -- 为model 指定数据库名
    django -- 联合索引
    flask基础之jijia2模板使用基础(二)
  • 原文地址:https://www.cnblogs.com/obge/p/12938194.html
Copyright © 2011-2022 走看看