MySQL WHERE数据过滤(二)
来源:互联网 发布:笔顺软件下载 编辑:程序博客网 时间:2024/06/09 23:13
说明:本文所使用的数据库样例表创建脚本下载地址:https://github.com/zhaoxd298/mysql_scripts
我的上一篇博客都是使用WHERE子句单一条件下的数据过滤,本文将讲述更高级的搜索条件。
一、组合WHERE子句
为了更强的过滤控制,MySQL允许给出多个WHERE子句。这些子句可以两种方式组合:以AND子句的方式或OR子句的方式使用。
1.AND操作符
为了不止一个列进行过滤,可使用AND操作符给WHERE子句附加条件。下面给出示例:
mysql> SELECT prod_id, prod_price, prod_name -> FROM products -> WHERE vend_id=1003 AND prod_price<=10;
运行结果:
2.OR操作符
OR操作符和AND操作符不同,它只是MySQL检索匹配任何一条件的行,请看下面示例:
mysql> SELECT prod_name, prod_price -> FROM products -> WHERE vend_id=1002 OR vend_id=1003;
运行结果:
注意:在AND和OR一起组合使用时要注意计算次序的问题,由于AND的优先级高,所以先会考虑AND操作符,然后再考虑OR操作符,请看下面示例:
mysql> SELECT prod_name, prod_price -> FROM products -> WHERE vend_id=1002 OR vend_id=1003 AND prod_price>=10;
运行结果:
如果上述指令是想得到vend_id为1002或者1003,且价格大于等于10美元的所有产品。那么根据运行结果显然不对,因为先考虑AND运算符,再考虑OR运算符,故计算次序不是按照指令书写次序的。可以用括号来修改优先级,下面为修改过的指令:
mysql> SELECT prod_name, prod_price -> FROM products -> WHERE (vend_id=1002 OR vend_id=1003) AND prod_price>=10;
运行结果:
通过用括号修改优先级变得到了正确的结果。
二、IN操作符
IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。其语法如下:
WHERE 列名 IN (条件1, 条件2, ..., 条件n);
举例说明:
mysql> SELECT prod_name, prod_price -> FROM products -> WHERE vend_id IN (1002, 1003) -> ORDER BY prod_name;
运行结果:
三、NOT操作符
WHERE子句中NOT操作符有且仅有一个功能,那就是否定它之后所跟的任何条件。举例说明:
mysql> SELECT vend_id, prod_name, prod_price -> FROM products -> WHERE NOT (vend_id=1002 OR vend_id=1003);
运行结果:
上述指令列出除了vend_id为1002和1003之外的所有产品。下面指令可以实现相同的功能:
mysql> SELECT vend_id, prod_name, prod_price -> FROM products -> WHERE vend_id NOT IN(1002, 1003);
阅读全文
1 0
- MySQL WHERE数据过滤(二)
- MySQL WHERE数据过滤(一)
- MySQL--操作简记(where过滤,通配符过滤数据)
- 【MySql】过滤数据where语句
- mysql过滤数据(二)
- SQL(四)查询(二)过滤数据(where子句()
- Mysql基础——where 过滤数据
- 过滤数据-----where子句
- 数据where条件过滤
- 6 过滤数据:where
- ADF中给VO动态添加where子句,过滤数据(二)
- MySQL学习足迹记录04--数据过滤--WHERE
- [Mysql必知必会系列]·过滤数据·WHERE子句
- Mysql| where子句过滤数据(BETWEEN,IS NULL,=,!=,...)
- Mysql| 组合where子句过滤数据(AND,OR,IN,NOT)
- mysql过滤数据(一)
- MySQL-WHERE搜索数据
- 使用where子句过滤表中数据
- LPC2138的引脚组态
- HDU 3785-寻找大富翁
- Gym
- zabbix3.41批量监控URL,并且告警给对应开发人员
- Mac/802_11dataRate_和basicRate_
- MySQL WHERE数据过滤(二)
- VS-Visual Studio-IIS Express 支持局域网访问
- 根据某一属性对数组中的对象进行排序
- Java作业所有(一)
- 使用POI导入Excel文件数据
- 聚类LDA
- 每个踏上社会的童鞋们的方向
- HDU 4848-Wow! Such Conquering!(DFS+最优性剪枝)
- 有哪些通俗易懂的例子可以解释 IAAS、SAAS、PAAS 的区别?