MySQL 运算符

MySQL EXISTS 运算符用于测试子查询中的记录是否存在。如果子查询返回一条或多条记录,则返回 true,否则返回 false。

语法

在 MySQL 中使用 EXISTS 运算符的语法如下:

SELECT column1, column2, column3, ...
FROM table_name
WHERE EXISTS 
(SELECT column_name FROM table_name
WHERE condition); 

示例:

考虑一个数据库,其中包含名为 Employee 和 Contact_Info 的表,并具有以下记录:

表1:Employee表

EmpIDNameCityAgeSalary
1JohnLondon253000
2MarryNew York242750
3JoParis272800
4KimAmsterdam303100
5RameshNew Delhi283000
6HuangBeijing282800

表2:Contact_Info 表

Phone_NumberEmpIDAddressGender
+1-80540980002Brooklyn, New York, USAF
+33-1479961013Grenelle, Paris, FranceM
+31-2011503194Geuzenveld, Amsterdam, NetherlandsF
+86-10997324586Yizhuangzhen, Beijing, ChinaM
+65-672348247Yishun, SingaporeM
+81-3577990728Koto City, Tokyo, JapanM

下面的 MySQL 语句返回 TRUE并且记录Employee 表中的员工为FeMale。

SELECT * FROM Employee
WHERE EXISTS 
(SELECT EmpID FROM Contact_Info 
WHERE Employee.EmpID = Contact_Info.EmpID AND Gender = 'F'); 

这将产生如下所示的结果:

EmpIDNameCityAgeSalary
2MarryNew York242750
4KimAmsterdam303100

下面提到的MySQL语句返回TRUE并且记录Employee 表中的员工为Male。

SELECT * FROM Employee
WHERE EXISTS 
(SELECT EmpID FROM Contact_Info 
WHERE Employee.EmpID = Contact_Info.EmpID AND Gender = 'M'); 

上述查询的结果将是:

EmpIDNameCityAgeSalary
3JoParis272800
6HuangBeijing282800