PHP MySQL计数在5列中提供值

PHP MySQL计数在5列中提供值,mysql,Mysql,我的数据库是这样的,我希望有一个while循环,它计算所有这些列中有一个数字的次数。例如,在这种情况下,情况如下: +------+------+------+------+------+ | num1 | num2 | num3 | num4 | num5 | +------+------+------+------+------+ | 5 | 8 | 18 | 38 | 45 | | 12 | 43 | 44 | 46 | 50 | | 8

我的数据库是这样的,我希望有一个while循环,它计算所有这些列中有一个数字的次数。例如,在这种情况下,情况如下:

+------+------+------+------+------+
| num1 | num2 | num3 | num4 | num5 |
+------+------+------+------+------+
|    5 |    8 |   18 |   38 |   45 |
|   12 |   43 |   44 |   46 |   50 |
|    8 |   18 |   45 |   46 |   50 |
+------+------+------+------+------+
我尝试过使用GROUP BY,但结果并不像预期的那样。

使用

5 - 1
8 - 2
18 - 1
38 - 1
获取所有已使用号码的列表

现在,我们使用它进行分组:

select num1 as number from table 
union all 
select num2 from table 
union all 
select num3 from table 
union all 
select num4 from table 
union all 
select num5 from table 

使用脚本中的循环,您可以轻松地完成此操作,只需选择所有数据(无分组),然后将数组中每个数字的出现次数相加,使用这些数字作为数组键…如果数组中还没有数字的条目,则创建值为1的元素,否则,您只需将1添加到当前计数。这不是数据库。事实上,从纯RDBMS的角度来看,它甚至不是一个表。参见规范化。你的结果集与你的数据集不一致。嗨,PuxTealPo权如果这个或任何答案已经解决了你的问题,请通过点击复选标记来考虑。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。
select number, count(*) 
from (select num1 as number from table union all select num2 from table union all select num3 from table union all select num4 from table union all select num5 from table) t1 
group by number