Autor Zpráva
Sith
Profil *
Ahoj, je možné použít COUNT nad již sestaveným dotazem / SELECTem?

Zatím jsem na to nepřišel.

Jestli ano, jak?


Díky.

David
Sith
Profil *
Abych to upřesnil - počítat se mají výsledné řádky ze SELECTu.
Yur4Y
Profil
Pre MySQL a PHP môžete použiť funkciu mysql_num_rows().
Sith
Profil *
To vím, tak to ještě upřesním :)

Nechci tahat data do pameti v PHP jen kvuli spocitani. Tzn. soucet má proběhnout na úrovni databáze - proto ten COUNT .....
Alphard
Profil
Sith:
Nechápu, proč nejde použít normální count. Tohle jste četl? Především SQL_CALC_FOUND_ROWS.
Sith
Profil *
Nechápu, proč nejde použít normální count. Tohle jste četl? Především SQL_CALC_FOUND_ROWS.

FOUND_ROWS() jsem našel, akorát na stránkách mysql nic o efektivitě není. Autor toho článku tvrdí, že OK, tak to vyzkouším.

Řeknu vám, proč volím tuto variantu. Do aplikace dopisuji stránkování dat. Mám postavený datový model a abych ho nemusel komplikovat, tohle perfektně pomůže.
Alphard
Profil
Sith:
Autor toho článku tvrdí, že OK, tak to vyzkouším.
Tomuto autorovi (Jakub Vrána) bych věřil.
pEeLL
Profil
nedavno jsem cetl clanek o SQL_CALC_FOUND_ROWS a výsledek jasne hovoril pro COUNT. dal jsem si par minut a clanek vam nasel:
http://www.phpdevblog.net/2009/06/mysql-pagination-sql-calc-found-rows-vs-count-query.html
Kajman_
Profil *
Pokud nepotřebujete ta data v jednotlivých řádcích, tak stačí jednoduchý count

select count(*) from (select s nejakymi podminkami a spojenim) t
Sith
Profil *
Kajman:
Ano, jde jen o COUNT. O tohle jsem se snažil v první řadě, ale dotaz se mi nepovedlo vytvořit, aniž bych ten původní neupravil.
Můžete nahodit konkrétní příklad?
Joker
Profil
Sith:
Můžete nahodit konkrétní příklad?
Vždyť tam je příklad. Co sem tak dát ten předmětný SQL dotaz, abychom věděli, kde je problém?
Sith
Profil *
Joker:
Jednoduchy dotaz typu
(SELECT id FROM zakaznici)
a tomu spocitat radky. Proste se mi zadnym pokusem nepodarilo prijit jak na to.
Sith
Profil *
Tak jsem si přečetl znovu Kajmanuv post, hanba. Predpokladal jsem, ze to "t" je překlep. Ale je to ALIAS. Takže počet řádků z předchozího dotazu, jak už bylo napsáno:

SELECT COUNT(*) FROM dotaz <alias> 


Díky všem, vyřešeno! :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0