在子查询中使用时,在MySQL EXISTS和IN之间首选哪一个?

EXISTS告诉查询是否返回了结果,而IN可用于将一个值与另一个值进行比较。IN使用文字值。

注–每当子查询结果非常小时,在子查询中首选IN。如果子查询结果非常大,则使用EXISTS。

由于IN是较小的子查询结果的首选,因此我们考虑使用IN的示例。

创建一个表。

mysql> create table InSubQueryDemo

   -> (

   -> PNumber int,

   -> PName varchar(100)

   -> );

将记录插入表中。

mysql> insert into InSubQueryDemo values(1,'Laptop');

mysql>  insert into InSubQueryDemo values(2,'WirelessKeyboard');

mysql>  insert into InSubQueryDemo values(3,'WirelessMouse');

显示所有记录。

mysql> select *from InSubQueryDemo;

以下是输出。

+---------+------------------+

| PNumber | PName            |

+---------+------------------+

|       1 | Laptop           |

|       2 | WirelessKeyboard |

|       3 | WirelessMouse    |

+---------+------------------+

3 rows in set (0.00 sec)

以下是IN的语法,其中包括一个子查询以获取大于1的“ PNumber”。

mysql> select *from InSubQueryDemo

   -> where PNumber IN (select PNumber from InSubQueryDemo  WHERE PNumber > 1);

这是输出。

+---------+------------------+

| PNumber | PName            |

+---------+------------------+

|       2 | WirelessKeyboard |

|       3 | WirelessMouse    |

+---------+------------------+

2 rows in set (0.04 sec)

以上是 在子查询中使用时,在MySQL EXISTS和IN之间首选哪一个? 的全部内容, 来源链接: utcz.com/z/316905.html

回到顶部