当符合至少x列的条件时,MYSQL选择行?

时间:2013-04-25 19:28:24

标签: mysql

另一个我无法找到答案的MYSQL问题:

我有这张桌子,我希望得到所有ID为SN> 7 AND reps>的ID。 4,并且在第1-6列中,某个标准至少满足x次。

例如,列col1-col6中的至少3个单元具有值> 1.

第一部分很简单(SELECT * FROM table WHERE SN > 7 AND reps > 4....),但我无法弄清楚第二部分。

谢谢!

ID SN    reps  col1   col2  col3  col4  col5  col6
A  12    3     0.6    1     3     -2    1     3
B  6     5     3.2    1.1   -3.3  3     0     0
C  300   6     1.3    -0.4  0     0.6   -0.5  -3.3

2 个答案:

答案 0 :(得分:3)

尝试:

SELECT * FROM table 
WHERE SN > 7 AND reps > 4 and
      (case when `1` > 1 then 1 else 0 end +
       case when `2` > 1 then 1 else 0 end +
       case when `3` > 1 then 1 else 0 end +
       case when `4` > 1 then 1 else 0 end +
       case when `5` > 1 then 1 else 0 end +
       case when `6` > 1 then 1 else 0 end) >= 3

答案 1 :(得分:1)

select * from table where sn> 7 and reps > 4 and 
(((`1` > 1) + (`2` > 1 ) + (`3` > 1) + (`4` > 1) + (`5` >1 ) + (`6` > 1)) >= 3)