我是一名MySQL菜鸟,我遇到了以下问题。 我有一张桌子,里面有3个数值字段。我称他们为A,B和C. 我想找到至少有两个值的记录> 60。 解决问题的一种方法是
SELEC * FROM table WHERE (A>60 AND B>60) OR (A>60 AND C>60) OR (B>60 AND C>60) OR (A>60 AND B>60 AND C>60)
但我不认为这是一种优雅的方式。只有3个值。如果表中有10或20个值字段,并且我还想查找至少有两个值>的记录。 60.用上述方法解决问题会非常难看。 那么有更好的方法来解决这个问题吗?
答案 0 :(得分:1)
尝试使用GREATEST
和LEAST
函数:
SELECT *
FROM yourTable
WHERE
GREATEST(A, B, C) > 60 AND -- largest value
(A + B + C) - GREATEST(A, B, C) - LEAST(A, B, C) > 60; -- 2nd largest value
但老实说,你现在的版本几乎和我上面写的一样简洁。