Autor Zpráva
sdfsdfsdf
Profil *
Zdravim, jde napriklad nejak tyto dva dotazy sloucit do jednoho?
$x1 = mysql_result(mysql_query("SELECT COUNT(*) FROM x WHERE a!=12"),0);
$x2= mysql_result(mysql_query("SELECT COUNT(*) FROM x WHERE a=12"),0);  
Keeehi
Profil
$x12 = mysql_result(mysql_query("SELECT COUNT(*) FROM x"),0);
?
YoSarin
Profil
Keeehi:
Tím ztratíš obě dvě informace (počet záznamů s a=12 i počet ostatních). Spíš by bylo potřeba něco jako:

sdfsdfsdf:
$result = mysql_query("SELECT COUNT(*) FROM x GROUP BY a=12;");
$x1 = mysql_result($result, 0);
$x2 = mysql_result($result, 1);
sdfsdfsdf
Profil *
YoSarin dik funguje to, akorat jeste otazka. Je to vhodnejsi takhle, nebo na dva dotazy jak to mam ja?
YoSarin
Profil
Já bych skoro řekl že u běžné aplikace je to jedno...
Jinak se mi osvědčilo, že většinou je rychlejší pokládat do DB více jednoduchých dotazů než jeden příliš složitý, ale zase to může být paměťově náročnější - záleží případ od případu.
Zkusil jsem to nad tabulkou s cca 70mil řádků. Doba běhu spojeného dotazu byla 22 vteřin, u oddělených dotazů to bylo 11 a 11 vteřin. Takže prašť jako bouchni.
Kajman_
Profil *
Pokud to je myisam tabulka, tak rychlejší by mohlo být

select c.pocet - a.pocet, a.pocet
from   (select count(*) pocet from x where a = 12) a
join   (select count(*) pocet from x) c

Pokud tam jsou null hodnoty, tak to může vyjít jinak, než první příklad.

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