为了账号安全,请及时绑定邮箱和手机立即绑定

SQL中存在与IN之间的差异?

SQL中存在与IN之间的差异?

一只斗牛犬 2019-07-19 10:03:37
SQL中存在与IN之间的差异?之间的区别是什么?EXISTS和INSQL中的子句?我们应该什么时候使用EXISTS,我们应该在什么时候使用IN?
查看完整描述

3 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

EXISTS将告诉您查询是否返回任何结果。例如:

SELECT * FROM Orders o 
WHERE EXISTS (
    SELECT * 
    FROM Products p 
    WHERE p.ProductNumber = o.ProductNumber)

IN用于将一个值与多个值进行比较,并可以使用文字值,如下所示:

SELECT * FROM Orders 
WHERE ProductNumber IN (1, 10, 100)

还可以将查询结果与IN条款如下:

SELECT * FROM Orders 
WHERE ProductNumber IN (
    SELECT ProductNumber 
    FROM Products 
    WHERE ProductInventoryQuantity > 0)


查看完整回答
反对 回复 2019-07-19
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

基于规则优化器:

  • EXISTS

    IN

    ,当子查询结果非常大时。
  • IN

    EXISTS

    ,当子查询结果非常小时。

基于成本优化器:


查看完整回答
反对 回复 2019-07-19
  • 3 回答
  • 0 关注
  • 459 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信