Mysql中in, exists与or关键字的区别

2024-10-14 01:38:57

1、写法上的区别:假设有表A,A表中有字段name。name的值可能为"x","y","z"。现要找出A表中name为"y","z"的记录:or的写法:select * from A where name="y" orname="z"in的写法:select * from A where namein ("y", "z")

Mysql中in, exists与or关键字的区别

3、exists孀晏弁钾也来凑热闹:要使用exists,我们再来新建一个B表。B表中也有字段name。name的值可能为"w","x","y"(注意A表可能值为"x","y","z")。现要找出A表中name与B表中name相同的记录:exists的写法:SELECT * FROM A WHERE EXISTS (SELECT B.name FROM b WHERE a.name = b.name)

Mysql中in, exists与or关键字的区别

5、in,exists执行效率大比拼:还是以下面的SQL语句为例:SELECT * FROM A WHERE EXISTS (SELECT B.name FROM b WHERE a.name = b.name)结合上述的理论,推出以下结论:1. 如果A表记录条数多于B表,则选择为in效率更高;2. 如果A表记录条数少于B表,则选择为exists效率更高;还不明白的,再通过上面的代码1和代码2来理解一下,应该就清楚了。

Mysql中in, exists与or关键字的区别

7、扩展说明2:在In与exists的查询结果基本之上,如果想取反,加上NOT关键字就可以了。select * from A where namein ("y", "z") 变成:select * from A where name not in ("y", "z")exists 变成 not exists。是不是很方便呢。

Mysql中in, exists与or关键字的区别
猜你喜欢