SQL的IN操作符

IN操作符

IN操作符允许我们在WHERE子句中规定多个值。
这个操作符可以让我们在表中选取有一定规律的特定值,比如多个同样的订单选取最新的一个。

SQL IN 语法

SELECT 列名
FROM 表明
WHERE 列名 IN (value1,value2,...)

例子

简单的例子网上有,这里说一个复杂点的例子

image.png

有如上图所示的表

查询要求

1.我们要在指定chain_id上只查询一条时间最新的数据。比如ID 4和5 chain_id都为4,但是我们只能显示7月3日的ID为5的数据。
2.这条数据的on_off如果为0我们是不抽取这条数据出来的。

SELECT *
FROM file 
WHERE created_at in (
SELECT MAX(created_at)
FROM file WHERE chain_id in (1,2,3,4) && on_off <> 0
GROUP BY chain_id
);

查询结果

image.png

SQL语句的解析

上面使用了两个WHERE...IN,第一层我们想找时间最大的数据条目,第二层我们要求同时这个数据是我们的制定的chain_id,并且on_off不能为0 。同时满足三个条件得出我们的结果。
实际上是先找出了指定chain_id上on_off不为0的数据,然后再从这个数据集当中找到指定chain_id时间最大的那些数据。

SQL的IN操作符

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容