Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Mysql retorna apenas uma linha ao usar Count


Sim, a contagem é um operador agregado, que faz com que apenas uma linha seja retornada (sem uma cláusula group by)

Talvez fazer duas consultas separadas? Não faz sentido que a linha retorne os dados e o número total de linhas, porque esses dados não pertencem um ao outro.

Se você realmente quer isso, você pode fazer algo assim:
SELECT *, (select count(*) FROM notis WHERE cid=20) AS count FROM notis WHERE cid=20 ORDER BY nid DESC LIMIT 0,3

ou isto:
SELECT N.*, C.total from notis N join (select count(*) total FROM notis WHERE cid=20) C WHERE cid=20) AS count FROM notis WHERE cid=20 ORDER BY nid DESC LIMIT 0,3

Com variações na expressão aninhada dependendo do seu dialeto SQL.