【问题标题】:mysql check values from sub querymysql 检查子查询中的值
【发布时间】:2016-04-16 11:36:19
【问题描述】:

**** 已解决 ****

SELECT price
FROM inventory
WHERE price > ANY (SELECT price FROM inventory WHERE type = 'new');

感谢 Mohammed Shafeek 和所有发表评论的人。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

我正在尝试检查价格是否高于子查询中的任何价格。

SELECT price
FROM inventory
WHERE price > price IN (SELECT price FROM inventory WHERE type = 'new');

所以我希望能够检查价格是否高于子查询中的至少一个值。

任何帮助将不胜感激。

**** 编辑 ****

我的意思的例子

20 美元 > 15 美元、30 美元、50 美元

所以因为 $20 大于 $15 它会被选中

这是最低(价格)

就像下面的 cmets 中提到的那样

提前致谢。

【问题讨论】:

    标签: mysql select subquery


    【解决方案1】:

    一种方法使用聚合:

    SELECT price
    FROM inventory
    WHERE price > (SELECT MAX(price) FROM inventory WHERE type = 'new');
    

    另一个使用ALL 运算符:

    SELECT price
    FROM inventory
    WHERE price > ALL (SELECT price FROM inventory WHERE type = 'new');
    

    【讨论】:

    • 在速度上也无法与你竞争,戈登 :)
    • 如果该值大于子查询中的一个值,例如 $20 > $20, $40, $60 仍然会被选中,因为它高于子查询之一价值观
    • 在第一个查询中,他问“检查价格是否高于子查询中的任何价格”..然后而不是 MAX(price).. 我认为 MIN(price)更好..
    • @MohammedShafeek 。 . .我将其解释为全部。您可以使用ANY 而不是ALL
    【解决方案2】:
    SELECT price
    FROM inventory
    WHERE price > ANY (SELECT price FROM inventory WHERE type = 'new');
    

    我认为这实际上是你想要的查询。检查它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-31
      • 1970-01-01
      • 2020-12-22
      • 1970-01-01
      • 2021-06-02
      • 1970-01-01
      • 2015-05-08
      相关资源
      最近更新 更多