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数据过滤的更多相关文章

  1. PHP批量过滤MYSQL数据库内站外链接和图片

    因发现站内很多引用站外文章的链接失效,产生大量的死链接,对于搜索引擎来说是极不友好的,很不利于网站优化,所以站内添加了站外链接过滤功能,对于新加的文章,在添加入库时就自动增加rel="nof ...

  2. MySQL必知必会 读书笔记四:数据过滤

    过滤数据 WHERE 只检索所需数据需要指定搜索条件( search criteria) ,搜索条件也称为过滤条件( filtercondition) . 在SELECT语句中,数据根据WHERE子句 ...

  3. MySql必知必会实战练习(三)数据过滤

    在之前的博客MySql必知必会实战练习(一)表创建和数据添加中完成了各表的创建和数据添加,MySql必知必会实战练习(二)数据检索中介绍了所有的数据检索操作,下面对数据过滤操作进行总结. 1. whe ...

  4. 《MySQL必知必会》过滤数据,数据过滤(where ,in ,null ,not)

    <MySQL必知必会>过滤数据,数据过滤 1.过滤数据 1.1 使用 where 子句 在SEL ECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤. WHERE子句在表名(FR ...

  5. mysql必知必会(四、检索数据,五、排序检索数据,六、过滤数据,七、数据过滤)

    四.select语句 1.检索单个列 select prod_name from products; 2.检索多个列 select prod_name, prod_price from product ...

  6. 6.MySQL必知必会之数据过滤-WHERE组合子句

    数据过滤-WHERE组合子句 本章讲授如何组合WHERE子句以建立功能更强的更高级的搜索条件. 我们还将学习如何使用NOT和IN操作符. 1.组合WHERE子句 上一章介绍的WHERE子句在过滤数据时 ...

  7. 用Myisamchk让MySQL数据表更健康

    用Myisamchk让MySQL数据表更健康 2011-03-15 09:15 水太深 ITPUB 字号:T | T 为了让MySQL数据库中的数据表“更健康”,就需要对其进行定期体检.在这里笔者推荐 ...

  8. 在spark中操作mysql数据 ---- spark学习之七

    使用spark的 DataFrame 来操作mysql数据. DataFrame是比RDD更高一个级别的抽象,可以应用SQL语句进行操作,详细参考: https://spark.apache.org/ ...

  9. MySQL数据导出导入【转】

    MySQL基础 关于MySQL数据导出导入的文章,目的有二: 1.备忘 2.供开发人员测试 工具 mysqlmysqldump 应用举例 导出 导出全库备份到本地的目录 mysqldump -u$US ...

随机推荐

  1. MyBatis学习总结(一)——MyBatis快速入门

    一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...

  2. 更新日志 - BugHD 新增邮件告警功能

    最近 BugHD 又新增了一些功能,包括邮件告警. issue 分享. issue 备注等,同时也做了性能优化.希望能够帮助你更高效地收集解决应用崩溃. BugHD 新增功能 1.邮件告警 除了 We ...

  3. mac本用WTG(Windows To Go)安装Win10到移动硬盘

    准备工作: 一个空的 USB 3.0 移动硬盘(在安装 WTG 时候会将这个硬盘清空重新并分区,注意备份好数据.USB 3.0 的优盘是不行的,即使安装成功,系统的运行速度会奇慢) 原版Windows ...

  4. SQL Server Window Function 窗体函数读书笔记二 - A Detailed Look at Window Functions

    这一章主要是介绍 窗体中的 Aggregate 函数, Rank 函数, Distribution 函数以及 Offset 函数. Window Aggregate 函数 Window Aggrega ...

  5. javascript中可变值与不可变值(原始值)

    字符串原始值修改不了1 var str = "abc"; 2 str[0] = "d"; 3 console.log(str[1]="f") ...

  6. Python - Tips

    01 - input与raw_input的区别 input() #可以直接输入数字,但输入字符的要用引号''或者双引号"" raw_input() #将所有的输入都直接当作一串字符 ...

  7. 基于HT for Web 快速搭建3D机房设备面板

    以真实设备为模型,搭建出设备面板,并实时获取设备运行参数,显示在设备面板上,这相比于纯数值的设备监控系统显得更加生动直观.今天我们就在HT for Web的3D技术上完成设备面板的搭建. 我们今天模拟 ...

  8. HT for Web基于HTML5的图像操作(三)

    上篇采用了HTML5的Canvas的globalCompositeOperation属性达到了染色效果,其实CSS也提供了一些常规图像变化的设置参数,关于CSS的过滤器Filter设置可参考 http ...

  9. CSS魔法堂:Absolute Positioning就这个样

    前言 当我们以position:absolute之名让元素脱离Normal flow的控制后,以为通过left和top属性值即可让元素得以无限的自由时,却发现还有各种神秘的力量左右着它的来去,于是我们 ...

  10. JS魔法堂:被玩坏的innerHTML、innerText、textContent和value属性

    一.前言 由于innerText并非W3C标准属性,因此我们无法在FireFox中使用它(修正:FF45+已经支持innerText属性),一般情况下我们可以使用textContent来代替,但它两者 ...