Mysql returns only one row when using Count

前端 未结 3 1324
深忆病人
深忆病人 2020-12-10 14:38

Well I\'ve just hit a weird behaviour that I\'ve never seen before, or haven\'t noticed.

I\'m using this query:

  SELECT *, 
         COUNT(*) AS pag         


        
3条回答
  •  不思量自难忘°
    2020-12-10 14:44

    Yeah, the count is an aggregate operator, which makes only one row returned (without a group by clause)

    Maybe make two separate queries? It doesn't make sense to have the row return the data and the total number of rows, because that data doesn't belong together.

    If you really really want it, you can do something like this:

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

    or this:

    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
    

    With variances on the nested expression depending on your SQL dialect.

提交回复
热议问题