zoukankan      html  css  js  c++  java
  • 【15】通配符注意事项

    1、AND&OR操作符

    筛选出sex=m且品种为猫或狗的记录:

    mysql> select * from pet;
    +----------+-------------+---------+------+------------+------------+
    | name     | owner       | species | sex  | birth      | death      |
    +----------+-------------+---------+------+------------+------------+
    | Puffball | Diane       | hamster | f    | 2000-09-22 | NULL       |
    | Cuihua   | ZhouXingChi | DOG     | M    | 1999-09-21 | NULL       |
    | DNN      | Huimin      | Cat     | f    | 2018-07-07 | NULL       |
    | Claws    | Gwen        | cat     | m    | 1994-03-17 | NULL       |
    | Buffy    | Harold      | dog     | f    | 1989-05-13 | NULL       |
    | Fang     | Benny       | dog     | m    | 1909-08-27 | NULL       |
    | Bowser   | Diane       | dog     | m    | 1979-08-31 | 1995-07-29 |
    | Chirpy   | Gwen        | bird    | f    | 1989-09-01 | NULL       |
    | Slim     | Benny       | snake   | m    | 2006-04-21 | NULL       |
    | Puffball | Diane       | hamster | f    | 2009-10-12 | NULL       |
    +----------+-------------+---------+------+------------+------------+
    10 rows in set (0.00 sec)
    
    mysql> select * from pet where species='cat' or species='dog' and sex='m';
    +--------+-------------+---------+------+------------+------------+
    | name   | owner       | species | sex  | birth      | death      |
    +--------+-------------+---------+------+------------+------------+
    | Cuihua | ZhouXingChi | DOG     | M    | 1999-09-21 | NULL       |
    | DNN    | Huimin      | Cat     | f    | 2018-07-07 | NULL       |
    | Claws  | Gwen        | cat     | m    | 1994-03-17 | NULL       |
    | Fang   | Benny       | dog     | m    | 1909-08-27 | NULL       |
    | Bowser | Diane       | dog     | m    | 1979-08-31 | 1995-07-29 |
    +--------+-------------+---------+------+------------+------------+
    5 rows in set (0.00 sec)
    
    mysql> select * from pet where (species='cat' or species='dog') and sex='m';
    +--------+-------------+---------+------+------------+------------+
    | name   | owner       | species | sex  | birth      | death      |
    +--------+-------------+---------+------+------------+------------+
    | Cuihua | ZhouXingChi | DOG     | M    | 1999-09-21 | NULL       |
    | Claws  | Gwen        | cat     | m    | 1994-03-17 | NULL       |
    | Fang   | Benny       | dog     | m    | 1909-08-27 | NULL       |
    | Bowser | Diane       | dog     | m    | 1979-08-31 | 1995-07-29 |
    +--------+-------------+---------+------+------------+------------+

    WHERE可包含任意数目的AND和OR操作符,允许两者结合以进行复杂和高级的过滤。

    AND操作符的优先级大于OR操作符,在使用具有AND和OR操作符的WHERE子句都因该使用圆括号明确的分组。

    使用IN操作符,与OR相同的功能:

    mysql> select * from pet where species in ('dog','cat') and sex='m';
    +--------+-------------+---------+------+------------+------------+
    | name   | owner       | species | sex  | birth      | death      |
    +--------+-------------+---------+------+------------+------------+
    | Cuihua | ZhouXingChi | DOG     | M    | 1999-09-21 | NULL       |
    | Claws  | Gwen        | cat     | m    | 1994-03-17 | NULL       |
    | Fang   | Benny       | dog     | m    | 1909-08-27 | NULL       |
    | Bowser | Diane       | dog     | m    | 1979-08-31 | 1995-07-29 |
    +--------+-------------+---------+------+------------+------------+

    使用IN操作符的优点:

    1.使用更长的合法选项清单时,更清楚直观;

    2.计算的次序更容易管理(使用的操作符更少);

    3.IN操作符比OR操作符清单执行更快;

    4.可以包含其他SELECT语句,更动态的建立WHERE子句。

    NOT与IN连用:

    mysql> select * from pet where species not in ('dog','cat') and sex='m';
    +------+-------+---------+------+------------+-------+
    | name | owner | species | sex  | birth      | death |
    +------+-------+---------+------+------------+-------+
    | Slim | Benny | snake   | m    | 2006-04-21 | NULL  |
    +------+-------+---------+------+------------+-------+

    2、通配符

    %可匹配0个、1个、多个字符,_只能匹配1个字符。

    使用通配符时需记住:

    1.不要过度使用通配符。如果其他操作符能达到相同的目的,应该使用其他操作符;

    2.在确实需要使用通配符时,除非绝对有必要,否则绝不要把它们用在搜索模式的开始处。置于开始处,搜索起来时最慢的;

    3.仔细注意通配符的位置,如果放错地方,可能不能返回想要的数据。

  • 相关阅读:
    神秘人物之comca —— 是否就是我的前车之鉴
    mfc错误:其原因可能是堆被损坏,这说明**.exe中或它加载的任何DLL
    微信公共平台php用$GLOBALS["HTTP_RAW_POST_DATA"]收不到信息解决方法
    2013蓝桥杯初赛c语言专科组题目与答案
    一道2012腾讯实习生笔试题
    文件版权自动注释,自动备份
    算法学习 三 >> 认识算法的效率(循环设计)
    算法学习 二 >> 结构化与面向对象两种算法设计的简略分析(c++/java)
    HTML入门(一)
    算法学习 一 >> 初识
  • 原文地址:https://www.cnblogs.com/direwolf22/p/12754864.html
Copyright © 2011-2022 走看看