mysql - 如何从表中选择偶数值

标签 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

最佳答案

MySQL 有一个很好的特性,即“ bool ”值被视为 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

关于mysql - 如何从表中选择偶数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20840719/

相关文章:

mysql - 尝试更新 mySQL 中的 640k 行得到 "Lost connection to MySQL server during query"

MySQL 调用 : Complete orders with a subset of products

php - 在html中为表数据制作前进/后退按钮

sql - EF Core 检查约束

Php PDO 请求从派生表列的总和中获取数据

mysql - 应用多个过滤器时如何提高查询性能?

mysql - 显示有关表列和键的信息

sql - 如何遍历查询结果

mysql - Inner Join 2个表多个结果

sql - 从 SQL 文件中 grep 一个句子