sql >> Base de Datos >  >> RDS >> Mysql

Mysql devuelve solo una fila cuando usa Count

Sí, el conteo es un operador agregado, lo que hace que solo se devuelva una fila (sin una cláusula group by)

¿Quizás hacer dos consultas separadas? No tiene sentido que la fila devuelva los datos y el número total de filas, porque esos datos no van juntos.

Si realmente lo quieres, puedes hacer algo como esto:

SELECT *, (select count(*) FROM notis WHERE cid=20) AS count FROM notis WHERE cid=20 ORDER BY nid DESC LIMIT 0,3

o esto:

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

Con variaciones en la expresión anidada dependiendo de su dialecto SQL.