暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

SQL 基础 | IN 的用法介绍

原创 严少安 2024-05-21
2272

在SQL中,IN是一个操作符,用于检查某列的值是否包含在指定的值列表中。

它通常用在WHERE子句中,以过滤出那些列值等于列表中任一值的行。

IN操作符可以用于简化多个OR条件,使得查询更加清晰。

以下是IN操作符的一些常见用法:

  1. 基本用法

使用IN来测试某个列的值是否等于列表中的任何值。

SELECT column_name(s) FROM table_name WHERE column_name IN (value1, value2, ...);

例如,找出users表中用户ID为1, 3, 或 5的所有用户:

SELECT * FROM users WHERE user_id IN (1, 3, 5);
  1. 与子查询结合使用

IN也可以与子查询结合使用,其中子查询返回一个值的集合。

SELECT column_name(s) FROM table_name WHERE column_name IN (SELECT column_name FROM subquery);

例如,找出在orders表中所有在customers表中存在的订单:

SELECT * FROM orders WHERE customer_id IN (SELECT customer_id FROM customers);
  1. NOT IN结合使用

使用NOT IN来选取不在这个列表中的值。

SELECT column_name(s) FROM table_name WHERE column_name NOT IN (value1, value2, ...);

例如,选取products表中不在特定列表中的所有产品:

SELECT * FROM products WHERE product_id NOT IN (101, 102, 103);
  1. NULL值一起使用

IN操作符不包括NULL值,即使列表中包含NULL

SELECT * FROM table_name WHERE column_name IN (NULL);

这个查询不会返回任何行,因为没有任何列的值可以等于NULL

  1. 在复杂的表达式中使用

IN可以与更复杂的表达式一起使用,比如函数或计算。

SELECT * FROM table_name WHERE some_function(column_name) IN (value1, value2, ...);

例如,选取sales表中所有销售额大于1000的记录:

SELECT * FROM sales WHERE (amount * 1.2) IN (2400, 3000, 3200);
  1. EXISTS子句中使用

尽管不是直接使用IN,但IN经常与EXISTS子句一起使用,以检查是否存在某个子查询返回的行。

SELECT * FROM table_name WHERE EXISTS (SELECT 1 FROM subquery WHERE subquery.column_name = table_name.column_name);

IN操作符是SQL查询中非常有用的工具,它可以帮助我们快速找出符合特定条件的行,特别是当需要匹配多个可能的值时。使用IN可以避免写很多冗长的OR条件,使查询更加简洁、高效。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论