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条件中联合使用的注意事项:相关推荐

  1. R语言使用party包中的ctree函数构建条件推理决策树(Conditional inference trees)、使用plot函数可视化训练好的条件推理决策树、条件推理决策树的叶子节点的阴影区域表

    R语言使用party包中的ctree函数构建条件推理决策树(Conditional inference trees).使用plot函数可视化训练好的条件推理决策树.条件推理决策树的叶子节点的阴影区域表 ...

  2. R语言dplyr包的mutate函数将列添加到dataframe中或者修改现有的数据列:基于条件判断创建布尔型指示变量、将异常离散编码转化为NA值

    R语言dplyr包的mutate函数将列添加到dataframe中或者修改现有的数据列:基于条件判断创建布尔型指示变量.将异常离散编码转化为NA值 目录

  3. [转载] Python中定义函数,循环语句,条件语句

    参考链接: Python中的局部函数 由于日常程序流中主要是三种结构:顺序,循环,条件,且往往需要自定义函数再调用, 因此今天想学习一下Python中关于定义函数.循环语句和条件语句的写法. 1.定义 ...

  4. c语言if函数多条件怎么输,excel中if函数怎么输入多个条件

    1,if()函数有三个参数,简单举例:if(a1"哈哈",1,2) ,那么当A1单元格内容为"哈哈",返回值1,否则返回值2. 2,if()函数多层嵌套,即可这 ...

  5. Excel中IF函数和AND函数结合使用进行多条件判断

    Excel中IF函数和AND函数结合使用进行多条件判断 | 浏览:7182 | 更新:2012-12-26 12:42 | 标签: excel 1 2 3 分步阅读 IF函数是针对一个条件进行判断的函 ...

  6. oracler日期函数相差六个月_oracle日期函数能在where条件中使用吗

    . SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii ...

  7. excel排名_excel函数技巧:看看按条件排名要如何进行?

    编按:哈喽,大家好!说到将excel中的数据进行排名,大家首先想到就是rank函数,但如果说要按条件对数据进行排名呢?小伙伴们是不是一下子就蒙圈了,似乎还没有听说过按条件进行排名的函数.那么今天,老菜 ...

  8. react中纯函数_如何在纯React中创建电子邮件芯片

    react中纯函数 by Andreas Remdt 由Andreas Remdt 如何在纯React中创建电子邮件芯片 (How to create email chips in pure Reac ...

  9. linux 条件变量函数,Linux线程同步之条件变量

    条件变量变量也是出自POSIX线程标准,另一种线程同步机制,.主要用来等待某个条件的发生.可以用来同步同一进程中的各个线程.当然如果一个条件变量存放在多个进程共享的某个内存区中,那么还可以通过条件变量 ...

最新文章

  1. Jquery Ajax 登录,服务端分别为 aspx,ashx,asmx
  2. 《Effective Java》读书笔记 Item 1:考虑静态工厂方法,而不是构造器
  3. Django之ORM对数据库操作
  4. xml动态生成java_从XML文档动态生成Java类
  5. Linux内核中流量控制(4)
  6. zabbix mysql优化 my.cnf_zabbix数据库优化之数据库优化(二)
  7. 未获利并倒赔2600元!暴风集团称公司董事实施短线交易公司股票的行为
  8. Ext.example.msg()应用
  9. Python让繁琐工作自动化——chapter15 保持时间、计划任务和启动程序
  10. arcgis中给属性文件加x y坐标
  11. 【C语言】ASCII码表
  12. oracle月份相减函数,Oracle 日期函数的加减
  13. 从零开始学数据库-MySQL
  14. 垂直门户网站与SEO
  15. 中国古代亲属称谓家谱总览
  16. 二叉树多种遍历的时间复杂度和空间复杂度
  17. 【OptiX】第6个示例 折射,玻璃材质
  18. c++ IO多路复用
  19. ping命令简单总结
  20. Leetcode 488.祖玛游戏

热门文章

  1. 图像处理与计算机视觉基础,经典以及最近发展!
  2. Springboot+ssm课堂教学效果实时评价系统
  3. 当一个女孩手机话费余额不足时
  4. 新浪微博模拟登陆 java
  5. 内网及外网mssql口令扫描渗透
  6. TRELLO操作文档
  7. 基于Matlab的图像去噪算法仿真实现
  8. js中的this:从执行上下文的角度看this
  9. 微信小程序版学生管理系统演示(一)
  10. 安装filezilla ftp客户端、版本升级、紧急升级