📅  最后修改于: 2023-12-03 14:47:40.441000             🧑  作者: Mango
在SQL中,IN运算符用于指定条件范围,以在查询中选择若干个值。可以在SELECT、INSERT、UPDATE、和DELETE语句中使用该运算符。
IN运算符可以使用常量、子查询或表达式列表作为参数。
以下是IN运算符的基本语法:
SELECT column1, column2, ...
FROM table_name
WHERE column_name IN (value1, value2, ...);
-- 或者
SELECT column1, column2, ...
FROM table_name
WHERE column_name IN (SELECT STATEMENT);
使用逗号分隔的常量列表是IN运算符最常见的参数类型。
例如,以下查询返回所有score列中包含90、80或70的记录:
SELECT * FROM student
WHERE score IN (90, 80, 70);
子查询指的是在IN运算符的括号内使用SELECT语句。因此,子查询可以返回单个列值或多个列值,并且可以包含WHERE、GROUP BY、HAVING和ORDER BY子句。
例如,以下查询返回所有score列中与“Jim”和“Bob”对应的id和score列值的记录:
SELECT id, score FROM student
WHERE name IN (SELECT name FROM student WHERE name = 'Jim' OR name = 'Bob');
除了常量列表和子查询之外,IN运算符还可以使用表达式列表作为参数。表达式可以是列、函数、运算符或任何产生单个值的东西。
例如,以下查询返回所有score列中包含0、1、2、3或当前日期年份的记录:
SELECT * FROM student
WHERE score IN (0, 1, 2, 3, YEAR(NOW()));
IN运算符还可以与NOT运算符一起使用,以选择不在条件列表中的值,如下所示:
SELECT * FROM student
WHERE score NOT IN (80, 90, 100);
IN运算符用于判断一个表达式是否在指定的范围内。它可以使用常量列表、子查询和表达式列表作为参数,并且可以与NOT运算符一起使用。IN运算符可用于选择数据、更新数据和删除数据。