Mysql3数据过滤


在这里插入图片描述

前言

WHERE子句的基本格式如下:

SELECT ……(列名) FROM ……(表名) WHERE ……(子句条件)

本文将介绍子句条件的三种不同方式:比较运算符、逻辑运算符、通配符过滤;

比较运算符

Mysql中比较运算符的含义参见以下:

  • 等于:=
  • 不等于:!=
  • 小于:<
  • 大于:>
  • 小于等于: <=
  • 大于等于:>=
  • 指定在两数之间:BETWEEN
  • 为空指:IS NULL

注意:BETWEEN边界:BETWEEN a AND b,,两边均是闭区间。即[a, b]

例如:

BETWEEN

SELECT name, hp_max FROM heros WHERE hp_max BETWEEN 5399 AND 6811;

IS NULL

mysql> SELECT name, hp_max FROM heros WHERE hp_max IS NULL;
Empty set (0.00 sec)

说明:表种hp_max字段没有存在空值的行;

逻辑运算符

Mysql中逻辑运算符的含义参见以下:

  • 并且: AND
  • 或者:OR
  • 在指定条件范围内:IN
  • 非:NOT
SELECT name, hp_max, mp_max FROM heros WHERE ((hp_max+mp_max) > 8000 OR hp_max > 6000) AND mp_max > 1700 ORDER BY (hp_max+mp_max) DESC;

注意:逻辑运算符优先级:() > AND > OR

使用通配符进行过滤

使用通配符需要与关键子LIKE搭配,看以下例子:

例子1:

mysql> SELECT name FROM heros WHERE name LIKE '%太%';
+--------------+
| name         |
+--------------+
| 东皇太一     |
| 太乙真人     |
+--------------+

例子2:

mysql> SELECT name FROM heros WHERE name LIKE '_%太%';
+--------------+
| name         |
+--------------+
| 东皇太一     |
+--------------+
1 row in set (0.00 sec)

从上可知以下通配符规则:

  • %通配符:匹配任意字符串出现的任意次数;
  • _通配符:匹配单个任意字符;

注意:在实际操作中,建议少用通配符。因为它有可能会使得索引实现,见下:

  • %太%, %太,就算名字上有索引,也会走全表扫描;
  • 太%,会走索引;

参考

  1. SQL必知必会从入门到数据实战
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值