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. 【转】strmbasd.lib(dllentry.obj) : error LNK2001: 无法解析的外部符号"int g_cTemplates"

    加入了DirectShow的基类链接库后,如果此时编译就会出现以下编译错误: strmbasd.lib(wxutil.obj) : error LNK2019: 无法解析的外部符号 __imp__ti ...

  2. python生产者消费者模型优点

    生产者消费者模型:解耦,通过队列降低耦合,支持并发,生产者和消费者是两个独立的并发体,他们之间使用缓存区作为桥梁连接,生产者指望里丢数据,就可以生产下一个数据了,消费者从中拿数据,这样就不会阻塞,影响 ...

  3. ubantu 安装nginx HTTP反向代理服务器

    Nginx发音的“engine x”是一个免费的开源高性能HTTP和反向代理服务器,负责处理互联网上一些最大的网站的负载. 本教程将概述在Ubuntu 18.04机器上安装和管理Nginx的步骤. 安 ...

  4. java学习笔记15(String 类,StringBuffer)

    /* * String类的特点: * 所有的""都是String的对象 * 字符串一旦创建就是常量,不能改变 */ public class StringDemo { public ...

  5. QueryString中的加号变成空格解决方法

    通过Request.QueryString["CheckItem"]的方式调用值的时候,数值中的加号“+”会转换为空格“ ” 例如传输“ABC+EFG”,就会取到“ABC EFG” ...

  6. Puppet的一些奇技淫巧

    puppet这个工具真的很神奇,先不说商业版有哪些黑科技,单是开源版本就有很多可能让你摸不着头脑的地方,下面来列举一下puppet是怎么查找puppet server的 其实很简单,puppet ag ...

  7. 性能测试-6.VUG脚本参数化

    前言:(原文地址)版面调整 什么是VUGEN action以及作用 参数化 参数化取值(9种组合,在不同场景中如何运用) 一.VUGEN是 LoadRunner 用于开发 Vuser 脚本的主要工具. ...

  8. SAP ABAP: Error Message "Statement already exist" when creating a function module.

    https://archive.sap.com/discussions/thread/1089149     First check above link where my problem is so ...

  9. 2.13 table表格定位

    2.13 table表格定位 前言    在web页面中经常会遇到table表格,特别是后台操作页面比较常见.本篇详细讲解table表格如何定位.一.认识table    1.首先看下table长什么 ...

  10. linux command1

    #列出指定用户(当前用户)的组信息 groups #将指定的用户添加(-a)到指定的组内(改组必须已经存在)或指定用户从指定的组中删除(-d) gpasswd –a/-d  username grou ...