返回一行SQL查询,使用PHP获取

返回一行SQL查询,使用PHP获取,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,使用我的SQL查询,我想对某一列中所有不同的值进行计数。这很好: SELECT ans, COUNT(*) AS ans_num FROM table_123 GROUP BY ans; 如果表中有三个不同的值,则返回(取决于有多少个不同的值)类似的结果: +------+---------+ | ans | ans_num | +------+---------+ | 0 | 15 | | 1 | 2 | | 3 | 11 | +-----

使用我的SQL查询,我想对某一列中所有不同的值进行计数。这很好:

SELECT ans, COUNT(*) AS ans_num
FROM table_123
GROUP BY ans;
如果表中有三个不同的值,则返回(取决于有多少个不同的值)类似的结果:

+------+---------+
| ans  | ans_num |
+------+---------+
| 0    |      15 |
| 1    |       2 |
| 3    |      11 |
+------+---------+
我正在使用
mysqli\u fetch\u array
返回PHP中的查询值,但为了获得所有结果,我必须遍历每一行

问题: 如何编写一个SQL查询,返回一个数组(关联)中的所有不同值,这样我只需
mysqli\u fetch\u数组
一次

澄清:
我想知道在查询中是否有一种方法可以将查询结果作为一行返回,而不是使用PHP获取所有行,您需要这种方法吗?
或者我理解错了?

我认为只有当“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|
    +---+----+----+----+

如果可能值的数量对于这种方法来说太多,那么您可能需要查看透视表。如果可能值的数量不确定,我不确定您如何影响您的请求。

您已经获得了一个关联数组,但它位于一个普通数组中
[[“ans”=>0],“ans”=>15],[[“ans”=>1],“ans”=>2],[[“ans”=>3],“ans”=>11]]
…为什么不在mysql查询中使用distinct
选择distinct ans,按类别将(*)作为表\u 123中的ans\u num
使用
mysqli\u fetch\u all
尝试mysqli\u fetch\u assocI我想知道,查询中是否有一种方法可以将查询结果作为一行返回,而不是用PHP获取所有行。这就是我一直在寻找的,但我后来了解到,以这种方式尝试获取数据是一个巨大的错误。不过,这很好,可供将来参考。