在子查询中使用时,在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)
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西