![]() |
![]() ![]() |
![]() |
![]()
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? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Jest taki modyfikator:
ale jest on "depracated". O ile pamiętam nie zwracał chyba dokładnych wyników (może się mylę). Skoro jednak pobierasz wszystkie rekordy, to przecież w PHP możesz obliczyć ile ich jest. Chyba, że robisz stronicowanie. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 405 Pomógł: 73 Dołączył: 15.07.2014 Ostrzeżenie: (0%) ![]() ![]() |
Możesz zrobić zwykły COUNT(...)
I tak, lepiej to dociągnąć dwoma osobnymi zapytaniami. Ten post edytował Salvation 14.04.2025, 13:43:21 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 573 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).
Można w jednym zapytaniu, najlepiej z COUNT(...) OVER (). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.09.2025 - 15:33 |