mysql不兼容问题(解决mysql 组合AND和OR带来的问题)
mysql不兼容问题
解决mysql 组合AND和OR带来的问题如下所示:
SELECT prod_name,prod_price FROM products WHERE vend_id = 1002 OR vend_id= 1003 AND prod_price >= 10;
上面这条语句 返回的结果不是我们想要的。
分析:
原因在于计算的次序。SQL 在处理OR操作符前 优先处理AND操作符。当SQK看到上述WHERE子句时,由于AND在计算次序中优先级更高,操作符被错误的组合了。
此问题的解决方法是使用圆括号明确地分组相应的操作符。
请看下面的SELECT 语句
|
SELECT prod_name,prod_price FROM products WHERE ( vend_id = 1002 OR vend_id= 1003) AND prod_price >= 10; |
补充知识:Mysql| 组合where子句过滤数据(AND,OR,IN,NOT)
mysql 允许使用多个where子句,组合where子句允许使用两种方式使用:AND 和OR子句的方式使用.
数据库中的操作符号:AND , OR , IN , NOT.
AND:
SELECT * FROM products WHERE products.vend_id = 1003 AND products.prod_price <= 10;
OR:
SELECT * FROM products WHERE products.vend_id = 1002 OR products.vend_id = 1003 ;
IN:
建议能使用IN的子句中不使用OR,IN行性能好,方便理解.
SELECT * FROM products WHERE products.vend_id IN (1002,1003);
NOT:
Mysql对NOT的支持仅在对IN,BETWEEN,EXISTS子句取反,这与其他多数数据库对各种条件都支持不同.
SELECT * FROM products WHERE products.vend_id NOT IN (1002,1003);
注意:
在同时有AND和OR的子句中,mysql是优先处理AND操作的.一般建议使用()来确定处理顺序和消除歧义.
比如:
SELECT * FROM products WHERE (products.vend_id= 1002 OR products.vend_id=1003) AND prod_price >= 10;
以上这篇解决mysql 组合AND和OR带来的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/newbie_God/article/details/78852782
- mysql删除表数据的语句(Mysql实现定时清空一张表的旧数据并保留几条数据推荐)
- python中怎么连接mysql(python远程连接MySQL数据库)
- mysql查询分区语句(MySQL中 and or 查询的优先级分析)
- mysql双向同步原理(详解MySQL的半同步)
- mysql触发器怎么添加(MySQL触发器的使用场景及方法实例)
- mysql索引原理及调优(MySQL索引机制程序员必知)
- 如何安装phpmysql环境(phpnow重新安装mysql数据库的方法)
- mysql索引的弊端(MySQL 全文索引的原理与缺陷)
- mysql一次查询的过程(一篇文章弄懂MySQL查询语句的执行过程)
- python怎样读取mysql数据(使用Python将Mysql的查询数据导出到文件的方法)
- mysqljoin语句用法(MySQL的join buffer原理)
- docker部署mysql多实例(Docker部署mysql一主一从的操作方法)
- 设置mysql字符集语句(MySQL修改字符集的实战教程)
- mysql8.0中如何导入数据(mysql8.0.20数据目录迁移的方法)
- mysql删除数据库的命令(MySQL 线上数据库清理数据的方法)
- phpstudymysql启动又自动停止(Win下解决phpStudy MySQL启动失败)
- 参考文献里期刊名称的写法,你知道吗(参考文献里期刊名称的写法)
- 硕博期刊 SCI SSCI CSSCI分不清 一文带你看懂主流期刊分类(硕博期刊SCISSCI)
- 辱华品牌新百伦官宣新代言人IU,个别粉丝希望get爱豆同款(辱华品牌新百伦官宣新代言人IU)
- 巅峰时期被爆床照,曾被选国民最讨厌女星,IU不为人知的黑历史(巅峰时期被爆床照)
- 每天1万吨牛奶倒进下水道,美国大萧条一幕重现(每天1万吨牛奶倒进下水道)
- 如何看待美国数十万加仑牛奶倒下水道 历史又重演了(如何看待美国数十万加仑牛奶倒下水道)
热门推荐
- nginx跳转规则配置上下文(基于nginx实现上游服务器动态自动上下线无需reload的实现方法)
- laravel跳转后需要授权吗(解决Laravel5.2 Auth认证退出失效的问题)
- input的autocomplete="off"属性
- vue如何加速(vue函数防抖与节流的正确使用方法)
- iis6双php版本的设置(云主机IIS7.5支持PHP5.3以上版本和MYSQL)
- sql function函数的用法(SQl Function 创建函数实例介绍)
- python怎么给rsa加密(Python生成rsa密钥对操作示例)
- vue改数组和对象值(vue $set 实现给数组集合对象赋值)
- php运行环境的搭建方法(php集成开发环境详解)
- 只用html5简单动画代码(HTML5 3D书本翻页动画的实现示例)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9