• mysql数据过滤


    WHERE子句

    在我们使用数据库时,通常只会根据特定条件提取表数据的子集。只检索所需数据需要指定搜索条件(search criteria),搜索条件也称为过滤条件(filtercondition)。

    SELECT name, age FROM tab1 WHERE age=18;

    返回age=18的行

    WHERE子句支持的操作符
    = 等于
    <> 不等于
    != 不等于
    < 小于
    <= 小于等于

    大于
    = 大于等于
    BETWEEN 在指定的两个值之间

    eg:

    SELECT name,age FROM tab1 WHERE age>10; //获取age大于10的数据
    SELECT name,age FROM tab1 WHERE age BETWEEN 10 AND 18; //获取age在10到18之间的数据,包括10和18

    另一个特殊子句
    IS NULL用来返回为空的数据

    SELECT name, age FROM WHERE name IS NULL;

    组合WHERE子句

    使用AND或者OR子句,组合WHERE子句

    SELECT name,age FROM tab1 WHERE age=10 AND name='aaa'; //查询age=10并且name='aaa'的数据

    SELECT name,age FROM tab1 WHERE age=10 OR age=19; //查询age=10或者age=19的数据

    AND和OR可以同时使用,不过AND的优先级高于OR,所以会先处理AND操作符,另外可以用括号分组,明确的显示优先级.

    IN操作符

    指定条件范围,范围中的每个条件都可以进行匹配。IN取合法值的由逗号分隔的清单,全都括在圆括号中。

    SELECT name,age FROM tab1 WHERE age IN (18,19,20); //查询age在18,19或20的所有数据,功能与OR相似.

    IN相比OR的好处:

    1. 在使用长的合法选项清单时,IN操作符的语法更清楚且更直观。
    2. 在使用IN时,计算的次序更容易管理
    3. IN操作符一般比OR操作符清单执行更快
    4. IN的可以包含其他SELECT语句,使得能够更动态地建立WHERE子句

    NOT操作符

    否定它之后所跟的任何条件。

    SELECT name,age FROM tab1 WHERE age NOT IN (18,19,20); //查询age不在18,19或20的所有数据,功能与OR相似.

    使用通配符过滤

    LIKE操作符

    %通配符

    %可以匹配表示任何字符出现任意次数

    SELECT name FROM tab1 WHERE name LINK 'a%';  //可以匹配任何name以a开头的数据

    _通配符

    下划线(_)。下划线只匹配单个字符,用法同%

    注意

    • 不要过度使用通配符。如果其他操作符能达到相同的目的,应该使用其他操作符。
    • 尽量不要把它们用在搜索模式的开始处,因为速度会很慢
  • 相关阅读:
    MySQL 主从复制与读写分离概念及架构分析
    删除优先级
    原来的ALL IN ONE架构,快速的演进成为SOA架构
    a=a+1 ++a 效率比较
    Myers–Briggs_Type_Indicator 迈尔斯布里格斯类型指标(MBTI)
    事大众而数摇之,则少成功;藏大器而数徙之,则多败伤
    int float 的具体的取值范围取决于具体的机器 整数除法舍位 整形(int)也可以用于存储字符型数据
    英特尔和 Google 的 OKR 制度与我们一般所说的 KPI 有什么不同?
    Net Promoter Score
    春节问候微信群发
  • 原文地址:https://www.cnblogs.com/itogo/p/5670383.html
Copyright © 2020-2023  润新知