如何从mysql中找到只有部分字段满足条件的记录?

vd2z7a6w  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(264)

我是一个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的记录。用上述方法来解决这个问题是很难看的。那么有没有更好的办法来解决这个问题呢?

kgsdhlau

kgsdhlau1#

尝试使用 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

演示

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

相关问题