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学习总结(四)——解决字段名与实体类属性名不相同的冲突

    在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体类属性名不相同的冲突. 一.准备演示需要使用的表和数据 CREATE TAB ...

  2. 每天一个linux命令(34):du 命令

    Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的. 1.命令格式: du [选项][文件] 2.命令功能 ...

  3. vue隐藏APP启动时显示的{{}}

    vue隐藏APP启动时显示的{{}} vue组件在编译好之前会显示{{msg}},在官网上找到这个

  4. 读《编写可维护的javascript》笔记

    第一章 基本的格式化 缩进层级:推荐 tab:4; 换行:在运算符后面换行,第二行追加两个缩进: // Good: Break after operator, following line inden ...

  5. -bash: /usr/local/bin/react-native: No such file or directory

    执行react-native run-android/run-ios的时候出现 -bash: /usr/local/bin/react-native: No such file or director ...

  6. 查看 table,view,sp的定义

    1, 查看用户创建的Proc,View, UDF,trigger 的定义 sys.sql_modules Returns a row for each object that is an SQL la ...

  7. 找到SQL Server的序列号

          有时候希望获取当前机器上安装的SQL Server序列号,但注册表中序列号是经过加密的,因此我写了一个小工具获取当前SQL Server的序列号.程序比较粗糙,没有做错误验证.       ...

  8. 【转】中间代码opcode的执行

    原文链接:http://www.orlion.ga/941/ 原文:http://www.nowamagic.net/librarys/veda/detail/1543 假如我们现在使用的是CLI模式 ...

  9. Androd开发之广告栏设计

    对于做Android开发的工程师对于这个效果的实现一定不陌生,本篇我将带领大家先简单实现这个效果,再为大家介绍一下其中的原理,方便新手学习,老手复习,内容简单易懂,没有基础一样学习,不扯没用的了,下面 ...

  10. java中包容易出现的错误及权限问题

    /* 3,权限在不同地方的体现: public protected default private 同一类中: ok ok ok ok 同一包中: ok ok ok 子类中: ok ok 不同包中: ...