MySQL 子查询

MySQL 子查询

子查询指将一个查询语句嵌套在另一个查询语句中。子查询可以在 SELECT、UPDATE 和 DELETE 语句中使用,而且可以进行多层嵌套。

在实际开发时,子查询经常出现在 WHERE 子句中。

子查询在 WHERE 中的语法格式 :

WHERE <表达式> <操作符> (子查询)

其中,操作符可以是比较运算符和 IN、NOT IN、EXISTS、NOT EXISTS 等关键字。

IN | NOT IN

当表达式与子查询返回的结果集中的某个值相等时,返回 TRUE,否则返回 FALSE;若使用关键字 NOT,则返回值正好相反。

EXISTS | NOT EXISTS

用于判断子查询的结果集是否为空,若子查询的结果集不为空,返回 TRUE,否则返回 FALSE;若使用关键字 NOT,则返回的值正好相反。

in 示例 :

SELECT * FROM students 
WHERE id IN (SELECT id FROM students WHERE id > 3)

单条数据 = 示例

SELECT * FROM students 
WHERE id = (SELECT id FROM students WHERE id = 3)