获取计数列到sql返回记录中的所有记录

时间:2019-04-28 14:50:16

标签: php mysql sql symfony-4.2

我需要获取记录数,并需要通过在返回结果中复制所有记录来显示结果。

{
    "id": 1,
    "count1": "5"
}

作为json响应,我目前收到上述输出。但我需要它如下。

{
    "id": 1,
    "count1": "5"    
},
{
    "id": 2,
    "count1": "5"    
},
{
    "id": 3,
    "count1": "5"    
}

我的尝试查询如下。

 $query = 'SELECT c.id, count(c) count1 FROM App\Entity\Car c';

我如何达到预期的结果?

1 个答案:

答案 0 :(得分:0)

如果您有数字表,则可以执行以下操作:

SELECT c.id, n.n, count1
FROM (SELECT c.id, count(c) as count1
      FROM `App\Entity\Car` c
      GROUP BY c.id
     ) c JOIN
     numbers n
     ON n.n <= c.count1;

如果您不这样做,则可以在表格足够大的情况下即时生成一个:

SELECT c.id, n.n, count1
FROM (SELECT c.id, count(c) as count1
      FROM `App\Entity\Car` c
      GROUP BY c.id
     ) c JOIN
     (SELECT (@rn := @rn + 1) as n
      FROM numbers n CROSS JOIN
           (SELECT @rn := 0) params
     ) n
     ON n.n <= c.count1;