SQL AND 运算符用于组合两个或多个条件,仅在所有条件都为真时返回 true。它类似于逻辑 AND 运算符并在布尔逻辑中使用。例如,以下查询使用 AND 运算符来查找同时具有“电影”类别和“动作”子类别的记录:
SELECT * FROM movies
WHERE category = 'Movie'
AND subcategory = 'Action';
什么是 SQL ALL
SQL ALL 运算符用于组合两个或多个子查询,并返回满足所有子查询的行的 。它与 AND 运算符类似,但它针对每个子查询结果中的行进行比较,而不是针对单个行。换句话说,ALL 运算符检查是否所有子查询都返回了至少一行与第一个子查询匹配的行。例如,以下查询使用 ALL 运算符来查找同时在“电影”类别和“动作”子类别中具有至少一项记录的所有用户:
SELECT * FROM users
WHERE EXISTS (
SELECT 1
FROM movies
WHERE category = 'Movie'
AND subcategory = 'Action'
AND user_id = users.id
)
AND EXISTS (
SELECT 1
FROM movies
WHERE category = 'TV Show'
AND subcategory = 'Drama'
AND user_id = users.id
);
AND 和 ALL 的区别
AND 和 ALL 运算符在 SQL 中都有自己的用途。AND 运算符用于在单个行上应用逻辑条件,而 ALL 运算符用于比较子查询结果集。通过了解这两种运算符之间的区别,您可以编写更有效和准确的 SQL 查询。