sql >> Databáze >  >> RDS >> Mysql

Mysql při použití Count vrací pouze jeden řádek

Ano, počet je agregační operátor, který vrací pouze jeden řádek (bez skupiny podle klauzule)

Možná položit dva samostatné dotazy? Nemá smysl, aby řádek vracel data a celkový počet řádků, protože tato data k sobě nepatří.

Pokud to opravdu chcete, můžete udělat něco takového:

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

nebo toto:

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

S odchylkami ve vnořeném výrazu v závislosti na vašem dialektu SQL.



  1. Jak používat python mysqldb k vložení mnoha řádků najednou

  2. Vysvětlení operátora Oracle MINUS

  3. Vytvořte objekt DIE na serveru SQL Server

  4. Jak automaticky načíst MySQL při spuštění na OS X Yosemite / El Capitan