Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL]liczenie rekordów w bazie i aliasy
Forum PHP.pl > Forum > Przedszkole
Majzel
mam takie zapytanie:
  1. SELECT thing AS tag, COUNT(id) AS quantity
  2. FROM my_table GROUP BY thing
  3. ORDER BY thing ASC


i zwraca:
tag quantity
Thing 1 1
Thing 2 1
Thing 3 1
Thing 4 1
Thing 5 1
Thing 6 1

dlaczego taki coś zwraca, ja chciałbym, żeby mi poprostu policzyło te rekordy, tzn. nie bardzo rozumiem ten powyższy kod, dlaczego przy każdej rzeczy jest jedynka?
z góry thx za moje lamerskie pytanie biggrin.gif
kefirek
Może o takie coś chodzi
  1. <?php
  2. $ile  = mysql_result(mysql_query("SELECT COUNT(*) FROM my_table"), 0);
  3. echo $ile;
  4. ?>
ddiceman
Co probujesz zliczyc?
ilosc rekordow, o jednakowym polu thing? Jesli tak, to jest to poprawne zapytanie. Jesli ilosc wszystkich rekordow to
  1. SELECT COUNT(*) AS quantity FROM my_table;

Zapytanie, ktore Ty wypisales pobiera wszystkie rekordy z tabeli, laczy ze soba te, ktore maja taka sama wartosc thing (GROUP BY THING) i ilosc ilosc tych rekordow (o tej samej wartosci thing) razem. Jezeli chcesz na koniec otrzymac rekord z suma wszysktich, to musisz wykonac ROLLUP:
  1. SELECT thing AS tag, COUNT(id) AS quantity FROM my_table GROUP BY thing WITH ROLLUP;
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.