WHERE子句操作符

从表products中检索prod_name,prod_price列,返回prod_price=2.5的行

mysql> SELECT  prod_name, prod_price  FROM  products

-> WHERE prod_price = 2.5 ;

从表products中检索prod_name,prod_price列,返回prod_name=fuses的行

mysql> SELECT  prod_name, prod_price  FROM  products

-> WHERE prod_name = 'fuses' ;

从表products中检索prod_name,prod_price列,返回prod_price位于5与10之间的行

mysql> SELECT  prod_name, prod_price  FROM  products

-> WHERE prod_price  BETWEEN 5 AND 10 ;

从表customers中检索cust_name列,返回cust_email为null的行

mysql> SELECT  cust_name  FROM  customers

-> WHERE cust_email  IS  NULL ;

组合WHERE子句

使用逻辑操作符(AND,OR,NOT)组合WHERE子句

从表products中检索prod_name,prod_price,vend_id列,返回vend_id=1003 且 prod_price大于等于10的行

mysql> SELECT  prod_name, prod_price, prod_price  FROM  products

-> WHERE vend_id = 1003  AND  prod_price  >= 10 ;

从表products中检索prod_name,prod_price,vend_id列,返回vend_id=1002 或 vend_id=1003 的行

mysql> SELECT  prod_name, prod_price, prod_price  FROM  products

-> WHERE vend_id = 1002  OR  vend_id = 1003 ;

从表products中检索prod_name,prod_price 列,返回非 prod_price大于等于10的行

mysql> SELECT  prod_name, prod_price, prod_price  FROM  products

-> WHERE  NOT  prod_price  >= 10 ;

可以使用IN代替OR

从表products中检索prod_name,prod_price,vend_id列,返回vend_id=1002 或 vend_id=1003 的行

mysql> SELECT  prod_name, prod_price, prod_price  FROM  products

-> WHERE vend_id  IN  (1002, 1003) ;

使用通配符过滤

针对过滤条件不够明确的可以使用通配符,如从表products中检索产品名prod_name包含字符anvil的所有产品,可以使用通配符  '%anvil%'。

百分号(%)通配符:表示任意多个字符。

从表products中检索prod_name列,返回prod_name以jet开头 的行

mysql> SELECT  prod_name  FROM  products

-> WHERE prod_name  LIKE  'jet%' ;

下划线(_)通配符:表示单个字符。

从表products中检索prod_name列,返回prod_name以jet开头只有4个字符的行

mysql> SELECT  prod_name  FROM  products

-> WHERE prod_name  LIKE  'jet_' ;

使用正则表达式过滤

从表products中检索prod_name列,返回prod_name包含字符串 '1000' 的行

mysql> SELECT  prod_name  FROM  products

-> WHERE prod_name  REGEXP  '1000' ;

通配符与正则表达式的区别:统配符与列的整个值进行匹配,如LIKE  '1000';  表示要匹配的值必须为'1000'。 而正则表达式与列所包含的值匹配,如REGEXP  '1000' ; 表示要匹配的值包含'1000' 。)

从表products中检索prod_name列,返回prod_name包含字符串 '1 ton'   或 '2 ton'  或'3 ton' 的行

mysql> SELECT  prod_name  FROM  products

-> WHERE prod_name  REGEXP  '1|2|3 ton' ;

(也可以WHERE prod_name  REGEXP  '[123] ton' ;  或  WHERE prod_name  REGEXP  '[1-3] ton' ;)

正则表达式字符类

重复元字符表示

mysql> SELECT  prod_name  FROM  products

-> WHERE prod_name  REGEXP  '\\([0-9] sticks?\\)' ;

由于  '('  为特殊字符,需要前置 \\ 才表示该符号本身,如 \\\ 表示字符 \

[0-9] 表示0至9中的一个数字

sticks?  s后的? 表示s为0个或1个,即  stick 或 sticks

'\\([0-9] sticks?\\)'    表示匹配(3 sticks) 、 (2 stick)等类似的字符串。

mysql> SELECT  prod_name  FROM  products

-> WHERE prod_name  REGEXP  '[[:digit:]]{4}' ;

[:digit:]表示匹配任意数字,{4}要求它前面的数字为4个

'[[:digit:]]{4}' 表示匹配连在一起的任意4位数字

等价于  '[0-9][0-9][0-9][0-9]'

定位符

mysql> SELECT  prod_name  FROM  products

-> WHERE prod_name  REGEXP  '^[0-9]' ;

'^[0-9]'  表示第一个字符必须为数字

MySQL 过滤数据(WHERE子句)的更多相关文章

  1. mysql过滤数据

    1.大纲 WHERE - 学习如何使用WHERE子句根据指定的条件过滤行记录. AND运算符 - 介绍如何使用AND运算符以组合布尔表达式以形成用于过滤数据的复杂条件. OR运算符 - 介绍OR运算符 ...

  2. 【MySQL】使用WHERE子句 - 过滤数据

    第6章 过滤数据 文章目录 第6章 过滤数据 1.使用WHERE子句 2.WHERE子句操作符 2.1.检查单个值 2.2.不匹配检查 2.3.范围值检查 2.4.空值检查 3.小结 简单记录 - M ...

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

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

  4. 5.MySQL必知必会之过滤数据-WHERE

    本章将讲授如何使用SELECT语句的WHERE子句指定搜索条件. 1.使用WHERE子句 数据库表一般包含大量的数据,很少需要检索表中所有行.通常只 会根据特定操作或报告的需要提取表数据的子集.只检索 ...

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

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

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

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

  7. MySQL学习笔记(二)——检索数据与过滤数据

    检索数据和过滤数据也就是平时用到最多的增删改查里面的查了. 一.数据检索 检索单个列: select column from table; 检索多个列:     select colunm1,colu ...

  8. MySQL:基础—数据分组

    MySQL:基础-数据分组 1.为什么要分组: 比如一个表中有多条订单记录,如上图,每条记录对应着一个商品,现在我要查询 每个商品被订购的单数 准备出货?也就是找到每个商品被订购的数量. 如果只找一个 ...

  9. MySQL查询数据表中数据记录(包括多表查询)

    MySQL查询数据表中数据记录(包括多表查询) 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: sele ...

随机推荐

  1. ubantu创建python虚拟环境

    安装虚拟环境的命令如下: sudo pip install virtualenv sudo pip install virtualenvwrapper 创建虚拟环境的命令如下: mkvirtualen ...

  2. 栈溢出原理与 shellcode 开发

     ESP:该指针永远指向系统栈最上面一个栈帧的栈顶  EBP:该指针永远指向系统栈最上面一个栈帧的底部 01  修改函数返回地址 #include<stdio.h> #include< ...

  3. 某些浏览器没有canvas.toBlob 方法的解决方案

    var dataURLtoBlob = require('blueimp-canvas-to-blob'); // 80x60px GIF image (color black, base64 dat ...

  4. HDU 1004 Let the Balloon Rise(map应用)

    Problem Description Contest time again! How excited it is to see balloons floating around. But to te ...

  5. JS执行机制--事件循环--笔记

    JS的解析是由浏览器中的JS解析引擎完成的.JS是单线程运行,也就是说,在同一个时间内只能做一件事,所有的任务都需要排队,前一个任务结束,后一个任务才能开始.但是又存在某些任务比较耗时,如IO读写等, ...

  6. LazyMan的实现

    题目如下: 实现一个LazyMan,可以按照以下方式调用: LazyMan(“Hank”)输出: Hi! This is Hank! LazyMan(“Hank”).sleep(10).eat(“di ...

  7. jupyter notebook远程服务器终端连接

    如下图

  8. 关于PHP程序员技术职业生涯规划[转]

    看到很多PHP程序员职业规划的文章,都是直接上来就提Linux.PHP.MySQL.Nginx.Redis.Memcache.jQuery这些,然后就直接上手搭环境.做项目,中级就是学习各种PHP框架 ...

  9. Unity查找物体的子物体、孙物体

    Unity查找物体下的所有物体 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分 ...

  10. xdoj 1241--余神的rp机(区间dp)

    xdoj  1241---余神的rp机 核