如何从MySQL中找到只有部分字段符合条件的记录?

时间:2018-04-11 01:55:52

标签: mysql

我是一名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.用上述方法解决问题会非常难看。 那么有更好的方法来解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

尝试使用GREATESTLEAST函数:

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

Demo

但老实说,你现在的版本几乎和我上面写的一样简洁。