我在以下结构中有一个名为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
答案 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
。