x<>的定义任何

时间:2014-04-07 18:46:18

标签: mysql sql

我正在学习SQL,并且我已经碰到了几个涉及集合的定义,例如:

SELECT x
FROM table t1
WHERE x >= ALL (
    SELECT x
    FROM table t2
)

找到集合的最大元素

x <= ALL(...)找到数据集的最小元素,x = ANY (...)x IN (...)相同,x <> ALL(...)x NOT IN(...)相同

但我无法弄清楚x <> ANY是否意味着什么。

你可以帮我解决一下吗?非常感谢。

2 个答案:

答案 0 :(得分:2)

意味着某些东西,但它并不是特别有用。直接从MySQL manual

  

必须遵循比较运算符的ANY关键字表示如果对于子查询的列中TRUE的{​​{1}}的比较为TRUE,则返回ANY返回“。

如果子查询结果中至少有两个不同的非x <> ANY元素,那么TRUE始终为NULL(因为x必然是{{1}至少其中一个)。编辑:除非<>x,否则正如@ruakh在评论中指出的那样,NULL始终是NULL <> anything

答案 1 :(得分:0)

t1.x <> ANY (SELECT t2.x FROM t2)EXISTS (SELECT 1 FROM t2 WHERE t2.x <> t1.x)相同;也就是说,如果t2中只有一行t2.x <> t1.x,则确实如此。