如何从表中选择偶数数值

时间:2013-12-30 13:39:53

标签: mysql sql

我在以下结构中有一个名为nums的mySql表,其中填充了数字数据。

id, n1, n2, n3, n4, n5, n6    
01, 34, 11, 07, 32, 19, 08    
02, 17, 03, 45, 02, 06, 15
.., .., .., .., .., .., ..

我的目标是能够选择一行中有多少个奇数,以及连续多少个偶数。

我已经实现了奇怪的选择声明,如下所示,但我不知道如何对偶数做等效,任何建议都会受到赞赏。感谢


示例:选择有多少行有3个奇数

  SET @NumbersOfOddColumnsWanted = 3;

  SELECT 
    n1, n2, n3, n4, n5, n6
  FROM
     nums
  WHERE
    n1 % 2 + n2 % 2 + n3 % 2 + n4 % 2 + n5 % 2 + n6 % 2 = @NumbersOfOddColumnsWanted

1 个答案:

答案 0 :(得分:3)

MySQL具有很好的功能,即“布尔”值被视为0或1.因此,您可以将它们添加起来。

SELECT ((n1%2 = 0) + (n2%2 = 0) + (n3%2 = 0) + (n4%2 = 0) + (n5%2 = 0) + (n6%2 = 0)
       ) as NumEvens,
       ((n1%2 = 1) + (n2%2 = 1) + (n3%2 = 1) + (n4%2 = 1) + (n5%2 = 1) + (n6%2 = 1)
       ) as NumOdds
FROM nums;

这假设没有值为NULL