Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Jedno zapytanie czy dwa?
sadistic_son
post
Post #1





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Siema. Chcę wyświetlić z bazy wszystkie rekordy, wiadomo - w while, oraz jedną wartość - ilość rekordów gdzie paid=1.
Da się tak zrobić w jednym zapytaniu? Chyba nie, co?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Malinaa
post
Post #2





Grupa: Zarejestrowani
Postów: 577
Pomógł: 6
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


W takiej sytuacji - gdy chcesz pobrać wszystkie rekordy z tabeli i policzyć tylko te, gdzie paid = 1, to da się to zrobić w jednym zapytaniu, bez SQL_CALC_FOUND_ROWS i bez osobnych zapytań, przy użyciu agregatu okna (window function).

  1. SELECT
  2. t.*,
  3. COUNT(CASE WHEN t.paid = 1 THEN 1 END) OVER () AS paid_count
  4. FROM
  5. tablea t;


Można w jednym zapytaniu, najlepiej z COUNT(...) OVER ().
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 14:28