MySQL 过滤数据(WHERE子句)
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子句)的更多相关文章
- mysql过滤数据
1.大纲 WHERE - 学习如何使用WHERE子句根据指定的条件过滤行记录. AND运算符 - 介绍如何使用AND运算符以组合布尔表达式以形成用于过滤数据的复杂条件. OR运算符 - 介绍OR运算符 ...
- 【MySQL】使用WHERE子句 - 过滤数据
第6章 过滤数据 文章目录 第6章 过滤数据 1.使用WHERE子句 2.WHERE子句操作符 2.1.检查单个值 2.2.不匹配检查 2.3.范围值检查 2.4.空值检查 3.小结 简单记录 - M ...
- 6.MySQL必知必会之数据过滤-WHERE组合子句
数据过滤-WHERE组合子句 本章讲授如何组合WHERE子句以建立功能更强的更高级的搜索条件. 我们还将学习如何使用NOT和IN操作符. 1.组合WHERE子句 上一章介绍的WHERE子句在过滤数据时 ...
- 5.MySQL必知必会之过滤数据-WHERE
本章将讲授如何使用SELECT语句的WHERE子句指定搜索条件. 1.使用WHERE子句 数据库表一般包含大量的数据,很少需要检索表中所有行.通常只 会根据特定操作或报告的需要提取表数据的子集.只检索 ...
- 《MySQL必知必会》过滤数据,数据过滤(where ,in ,null ,not)
<MySQL必知必会>过滤数据,数据过滤 1.过滤数据 1.1 使用 where 子句 在SEL ECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤. WHERE子句在表名(FR ...
- mysql必知必会(四、检索数据,五、排序检索数据,六、过滤数据,七、数据过滤)
四.select语句 1.检索单个列 select prod_name from products; 2.检索多个列 select prod_name, prod_price from product ...
- MySQL学习笔记(二)——检索数据与过滤数据
检索数据和过滤数据也就是平时用到最多的增删改查里面的查了. 一.数据检索 检索单个列: select column from table; 检索多个列: select colunm1,colu ...
- MySQL:基础—数据分组
MySQL:基础-数据分组 1.为什么要分组: 比如一个表中有多条订单记录,如上图,每条记录对应着一个商品,现在我要查询 每个商品被订购的单数 准备出货?也就是找到每个商品被订购的数量. 如果只找一个 ...
- MySQL查询数据表中数据记录(包括多表查询)
MySQL查询数据表中数据记录(包括多表查询) 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: sele ...
随机推荐
- L314 单音节词读音规则(二)-元音字母发音规则
1 单个元音发音尽量拖音一下(2S),发音会饱满一些. 2开音节: 辅音(辅组)(没有)+元音+辅音+e 的单词其中:元音发字母本身音,辅音字母不为r , 字母e不发音. 相对开音节:第一个元音都发字 ...
- Delphi 10.3终于来了
http://altd.embarcadero.com/download/radstudio/10.3/delphicbuilder10_3_0_94364.iso 安装工具: http://ww ...
- opengl学习,一篇就够你基本了解
http://blog.csdn.net/iduosi/article/details/7835624
- WPA2 Key Reinstallation 漏洞
漏洞形成: 必要条件1:WPA2 协议存在一个消息重放漏洞,导致多组相同数据被使用了相同的密钥加密. ciphertext = plaintext xor AES(key, IV||counter) ...
- 【计算机视觉】欧拉角Pitch/Yaw/Roll
Pitch: 俯仰角: Yaw: 偏航角或者航向角: Roll: 横摆角或者翻滚角: 这几个角度是这样定义的,至于坐标系不同,则对应不同的XYZ轴及其方向: 1. https://en.wikiped ...
- matlab学习(1)strsplit与strtok
strsplit函数用法: <1>默认使用空格符分割,返回一个cell数组 <2>也可以指定第二个参数进行分割 <3>第二个参数也可以时包含多个分隔符的元胞数组 & ...
- 20155219 2016-2017-2 《Java程序设计》第8周学习总结
20155219 2016-2017-2 <Java程序设计>第8周学习总结 教材学习内容总结 通用API 日志API 1.java.util.logging包提供了日志功能相关类与接口, ...
- 线段树专题2-(加强版线段树-可持续化线段树)主席树 orz! ------用于解决区间第k大的问题----xdoj-1216
poj-2104(区间第K大问题) #include <iostream> #include <algorithm> #include <cstdio> #incl ...
- 51nod- 【1042 数字0-9的数量 】
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1042 题目: 1042 数字0-9的数量 基准时间限制:1 ...
- C语言--第四周作业评分和总结(5班)
作业链接:https://edu.cnblogs.com/campus/hljkj/CS2017-5/homework/1129 一.评分要求 要求1 完成PTA第四周所有题(20分). 要求2 4道 ...
