Chci chytit X řádků, takže jsem nastavil LIMIT X
; ale jak mohu současně spočítat i celkový počet řádků?
V současné době používám dva samostatné dotazy
SELECT COUNT(*) FROM col WHERE CLAUSE
SELECT * FROM col WHERE CLAUSE LIMIT X
Existuje způsob, jak to udělat v jednom dotazu?
EDIT: Výstupem by měly být buňky col
a počet řádků. Ve skutečnosti by po výběru buněk col
měl procházet tabulkou a počítat pouze.
Vím, že není možné sloučit tyto dva dotazy, jako první vrácený řádek 1, ale druhý řádek X. Jsem zvědavý, jestli v mysql existuje funkce, která vrací počet řádků v přítomnosti LIMIT
.
Vypadá to, že chcete spustit LIMIT, ale stále víte, kolik řádků by bylo vráceno bez LIMIT. Podívejte se FOUND ROWS
V dotazu SELECT použijte SQL_CALC_FOUND_ROWS
A poté spusťte SELECT FOUND_ROWS()
:
SELECT SQL_CALC_FOUND_ROWS field_name,filed_name2 FROM col WHERE CLAUSE LIMIT X;
SELECT FOUND_ROWS() ;
Vím, že je to starý, ale už to neplatí, s MySQL> = 8.0.17 cf MySQL Function Found_Rows () Takže stále musíme vydávat oba dotazy, tj. přidat bohužel s funkcí COUNT()
.