sql >> Databasteknik >  >> RDS >> Mysql

Mysql returnerar endast en rad när du använder Count

Ja, antalet är en aggregerad operator, vilket gör att endast en rad returneras (utan en grupp efter klausul)

Kanske göra två separata frågor? Det är inte meningsfullt att låta raden returnera data och det totala antalet rader, eftersom dessa data inte hör ihop.

Om du verkligen vill ha det kan du göra något så här:

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

eller detta:

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

Med avvikelser på det kapslade uttrycket beroende på din SQL-dialekt.



  1. MySQL Workbench Error 1175 Även med en Where-deklaration

  2. Hantera datumformat skillnader mellan PHP och MySQL

  3. Krävs för att gå med 2 bord med sina FKs i ett 3:e bord

  4. Ta bort alla icke-numeriska tecken från ett fält