📜  用于匹配同一列中的多个值的 SQL 查询(1)

📅  最后修改于: 2023-12-03 15:11:15.906000             🧑  作者: Mango

用于匹配同一列中的多个值的 SQL 查询

在 SQL 查询中,我们经常需要使用 WHERE 子句来筛选出符合特定条件的行。有时,我们需要匹配同一列中的多个值。以下是几种常见的方法。

使用 IN 子句

IN 子句用于指定一组值,如果某一行的匹配列值包含在这组值中,则该行将被 SELECT 出来。使用 IN 子句的语法如下:

SELECT column1, column2, ...
FROM table_name
WHERE column IN (value1, value2, ...);

例如,我们要查找学号为 1、2、3 的学生的姓名和成绩,可以使用以下 SQL:

SELECT name, grade
FROM students
WHERE id IN (1, 2, 3);

使用 OR 子句

OR 子句可以将多个条件合并为一个条件,如果任意一个条件成立,则该行将被 SELECT 出来。使用 OR 子句的语法如下:

SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 OR ...;

例如,我们要查找学号为 1、2、3 的学生或成绩大于等于 90 分的学生的姓名和成绩,可以使用以下 SQL:

SELECT name, grade
FROM students
WHERE id = 1 OR id = 2 OR id = 3 OR grade >= 90;

使用 EXISTS 子句

EXISTS 子句用于检查子查询是否返回了至少一行。使用 EXISTS 子句的语法如下:

SELECT column1, column2, ...
FROM table_name
WHERE EXISTS (subquery);

例如,我们要查找所有选过课程编号为 1 和 2 的学生的姓名和成绩,可以使用以下 SQL:

SELECT name, grade
FROM students
WHERE EXISTS (
  SELECT *
  FROM courses
  WHERE courses.id IN (1, 2)
  AND courses.student_id = students.id
);

以上是几种常用的匹配同一列中的多个值的 SQL 查询方法。在实际应用中,可以根据具体的需求选择适合的方法来实现查询。