MySQL中 and or 查询的优先级分析
网络编程 2021-07-05 14:37www.168986.cn编程入门
这个可能是容易被忽略的问题,首选我们要清楚,MySQL中,AND的执行优先级高于OR。也就是说,在没有小括号()的限制下,总是优先执行AND语句,再执行OR语句
这个可能是容易被忽略的问题,首选我们要清楚
MySQL中,AND的执行优先级高于OR。也就是说,在没有小括号()的限制下,总是优先执行AND语句,再执行OR语句。
比如
select from table where 条件1 AND 条件2 OR 条件3 等价于 select from table where ( 条件1 AND 条件2 ) OR 条件3 select from table where 条件1 AND 条件2 OR 条件3 AND 条件4 等价于 select from table where ( 条件1 AND 条件2 ) OR ( 条件3 AND 条件4 )
来点事例深入理解下
测试表数据
SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for book -- ---------------------------- DROP TABLE IF EXISTS `book`; CREATE TABLE `book` ( `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `name` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, `author` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, `price` decimal(10, 2) DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of book -- ---------------------------- INSERT INTO `book` VALUES (1, 'PHP', 'mate', 21.00); INSERT INTO `book` VALUES (2, 'JAVA', 'kaven', 23.00); INSERT INTO `book` VALUES (3, 'JAVA高级', 'loose', 45.00); INSERT INTO `book` VALUES (4, 'GO', 'jim', 46.00); INSERT INTO `book` VALUES (5, 'GO设计', 'json', 76.00); INSERT INTO `book` VALUES (6, 'PHP高级编程', 'bate', 67.00); INSERT INTO `book` VALUES (7, 'Python', 'jim', 66.00); INSERT INTO `book` VALUES (8, 'Python设计', 'mali', 54.00); INSERT INTO `book` VALUES (9, 'GO编程', 'kaven', 86.00); INSERT INTO `book` VALUES (11, 'Python3', 'jim', 55.00); SET FOREIGN_KEY_CHECKS = 1;
查询方式1
SELECT FROM book WHERE author='jim' OR author='json' AND name='PHP';
上面的查询等价于
SELECT FROM book WHERE author='jim' OR (author='json' AND name='PHP');
那么上面的查询结果就很好理解了。
查询方式2
SELECT FROM book WHERE name='PHP' AND author='jim' OR author='json';
上面的查询等价于
SELECT FROM book WHERE (name='PHP' AND author='jim') OR author='json';
查询方式3
SELECT FROM book WHERE name='GO' AND (author='jim' OR author='json');
这个就很好理解了。了解and or的优先级。这些查询也就不是呢么"理解混淆"了。
到此这篇关于MySQL中 and or 查询的优先级分析的文章就介绍到这了,更多相关MySQL and or 查询内容请搜索狼蚁SEO以前的文章或继续浏览狼蚁网站SEO优化的相关文章希望大家以后多多支持狼蚁SEO!
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程