使用我的SQL查询,我想要计算某列中的所有不同值。这很好用:
SELECT ans, COUNT(*) AS ans_num
FROM table_123
GROUP BY ans;
如果表中有三个不同的值,则返回(取决于多少个不同的值)这样的事情:
+------+---------+
| ans | ans_num |
+------+---------+
| 0 | 15 |
| 1 | 2 |
| 3 | 11 |
+------+---------+
我使用mysqli_fetch_array
在PHP中返回查询值,但我必须遍历每一行才能获得所有结果。
如何编写一个SQL查询来返回一个数组中的所有不同值(关联),所以我只需要mysqli_fetch_array
一次?
我想知道在查询中是否有一种方法可以将查询结果作为单行返回,而不是使用PHP获取所有行
答案 0 :(得分:0)
答案 1 :(得分:0)
我认为这只有在" ans"有确定数量的值时才有可能。在这种情况下,这样的事情应该有用。
SELECT SUM(Zero) "0", Sum(One) "1", Sum(Two) "2", Sum(Three) "3" FROM
(SELECT IF(ans=0, 1, 0) Zero, IF(ans=1, 1, 0) One, IF(ans=2, 1, 0) Two, IF(ans=3, 1, 0) Three
FROM table_123) TEMP;
这应该会得到这样的结果:
+---+----+----+----+
| 0 | 1 | 2 | 3 |
+---+----+----+----+
| 15| 2| 0| 11|
+---+----+----+----+
如果此方法的可能值数量太大,您可能需要查看数据透视表。如果可能值的数量不确定,我不确定如何影响您的请求。