IN 函数 和 and 在where条件中联合使用的注意事项:
IN 函数一般在 where 条件中使用。使用的方法为:
SELECT columns
FROM tables
WHERE column1 in (value1, value2, .... value_n);
当where 条件中 IN 函数 和 and 一起使用的时候,需要特别的注意:
先思考一下下列两个语句的查询结果是否一样
SELECT columns FROM tables WHERE column1 in (value1, value2, .... value_n) AND column2 ='column2';
和
SELECT columns FROM tables WHEREcolumn2 ='column2' AND column1 in (value1, value2, .... value_n);
有的人认为:两个条件取并集,与条件的先后关系没有关系,结果应该是一样的。
这种想法是错误的,上面两个语句的结果是不一样的。
IN函数的实质是什么? 一堆OR条件组合的简略形式。
clumn1 =value1 OR column1=value2 OR…… OR column = value_n 等于 column1 in (value1, value2, .... value_n);
说白了,IN函数只是有助于减少OR条件的复合使用。
当把上述两个语句还原:
SELECT columns FROM tables
WHERE clumn1 =value1 OR column1=value2 OR…… ORcolumn = value_n AND column2 ='column2';
和
SELECT columns FROM tables
WHERE column2 ='column2' AND clumn1 =value1 OR column1=value2 OR…… OR column = value_n;
根据 OR 和 AND 的执行顺序,先执行AND,然后执行OR。
第一个语句先执行column = value_n AND column2 ='column2';获取的值和前面的条件取或值。
第二个语句先执行column2 ='column2' AND clumn1 =value1;获取的值和后面的条件取或值。
column2 ='column2' AND clumn1 =value1 和 column2 ='column2' AND clumn1 =value1 获取的值肯定不同。
所以要实现取 IN函数 和其他条件的并集,只需要在 IN函数 外面添加"()"即可。下面的查询语句的结果是一样的。
SELECT columns FROM tables WHERE(column1 in (value1, value2, .... value_n)) AND column2 ='column2';
和
SELECT columns FROM tables WHERE column2 ='column2' AND(column1 in (value1, value2, .... value_n));
IN 函数 和 and 在where条件中联合使用的注意事项:相关推荐
- R语言使用party包中的ctree函数构建条件推理决策树(Conditional inference trees)、使用plot函数可视化训练好的条件推理决策树、条件推理决策树的叶子节点的阴影区域表
R语言使用party包中的ctree函数构建条件推理决策树(Conditional inference trees).使用plot函数可视化训练好的条件推理决策树.条件推理决策树的叶子节点的阴影区域表 ...
- R语言dplyr包的mutate函数将列添加到dataframe中或者修改现有的数据列:基于条件判断创建布尔型指示变量、将异常离散编码转化为NA值
R语言dplyr包的mutate函数将列添加到dataframe中或者修改现有的数据列:基于条件判断创建布尔型指示变量.将异常离散编码转化为NA值 目录
- [转载] Python中定义函数,循环语句,条件语句
参考链接: Python中的局部函数 由于日常程序流中主要是三种结构:顺序,循环,条件,且往往需要自定义函数再调用, 因此今天想学习一下Python中关于定义函数.循环语句和条件语句的写法. 1.定义 ...
- c语言if函数多条件怎么输,excel中if函数怎么输入多个条件
1,if()函数有三个参数,简单举例:if(a1"哈哈",1,2) ,那么当A1单元格内容为"哈哈",返回值1,否则返回值2. 2,if()函数多层嵌套,即可这 ...
- Excel中IF函数和AND函数结合使用进行多条件判断
Excel中IF函数和AND函数结合使用进行多条件判断 | 浏览:7182 | 更新:2012-12-26 12:42 | 标签: excel 1 2 3 分步阅读 IF函数是针对一个条件进行判断的函 ...
- oracler日期函数相差六个月_oracle日期函数能在where条件中使用吗
. SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii ...
- excel排名_excel函数技巧:看看按条件排名要如何进行?
编按:哈喽,大家好!说到将excel中的数据进行排名,大家首先想到就是rank函数,但如果说要按条件对数据进行排名呢?小伙伴们是不是一下子就蒙圈了,似乎还没有听说过按条件进行排名的函数.那么今天,老菜 ...
- react中纯函数_如何在纯React中创建电子邮件芯片
react中纯函数 by Andreas Remdt 由Andreas Remdt 如何在纯React中创建电子邮件芯片 (How to create email chips in pure Reac ...
- linux 条件变量函数,Linux线程同步之条件变量
条件变量变量也是出自POSIX线程标准,另一种线程同步机制,.主要用来等待某个条件的发生.可以用来同步同一进程中的各个线程.当然如果一个条件变量存放在多个进程共享的某个内存区中,那么还可以通过条件变量 ...
最新文章
- Jquery Ajax 登录,服务端分别为 aspx,ashx,asmx
- 《Effective Java》读书笔记 Item 1:考虑静态工厂方法,而不是构造器
- Django之ORM对数据库操作
- xml动态生成java_从XML文档动态生成Java类
- Linux内核中流量控制(4)
- zabbix mysql优化 my.cnf_zabbix数据库优化之数据库优化(二)
- 未获利并倒赔2600元!暴风集团称公司董事实施短线交易公司股票的行为
- Ext.example.msg()应用
- Python让繁琐工作自动化——chapter15 保持时间、计划任务和启动程序
- arcgis中给属性文件加x y坐标
- 【C语言】ASCII码表
- oracle月份相减函数,Oracle 日期函数的加减
- 从零开始学数据库-MySQL
- 垂直门户网站与SEO
- 中国古代亲属称谓家谱总览
- 二叉树多种遍历的时间复杂度和空间复杂度
- 【OptiX】第6个示例 折射,玻璃材质
- c++ IO多路复用
- ping命令简单总结
- Leetcode 488.祖玛游戏