Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Proste pytanie - zliczanie w zapytaniu
Forum PHP.pl > Forum > Bazy danych > MySQL
pc5
Mam takie zapytanie :

  1. SELECT id_obrazka,nazwa,podpis, (SELECT COUNT(*) FROM MIL_Pliki WHERE nazwa LIKE '%1%' OR podpis LIKE '%1%' OR id_obrazka LIKE '%1%') FROM MIL_Pliki WHERE nazwa LIKE '%1%' OR podpis LIKE '%1%' OR id_obrazka LIKE '%1%' ORDER BY nazwa DESC LIMIT 0, 10


Czy SELECT COUNT(*) będzie wykonywał się 10 razy, jeżeli wynik zwróci 10 elementów?

Mam taką tabelę :

MIL_Pliki
id_obrazka | nazwa | podpis
0 | test | gory
1 | cos| doliny
2 | ala 1| tatry
3 | kot 1| wakacje
4 | foo 1| biba

Chcę w jednym zapytaniu zliczyć ilość elementów dla zapytania np. nazwa LIKE '%1%' LIMIT 0,2 i jednocześnie otrzymać wynik do wypisu. Powyższe zapytanie realizuje to zadanie, ale może da się to jakoś sprawniej zrobić?
nospor
Cytat
Czy SELECT COUNT(*) będzie wykonywał się 10 razy, jeżeli wynik zwróci 10 elementów?

Tak.

Takie rzeczy robi sie inaczej
albo pobierasz wynik count() oddzielnym zapytaniem
albo korzystasz z .... kurcze, zapomniałem nazwy funkcji

tak czy inaczej musisz zrobic dwa zapytania
kefirek
Można tez tak
  1. SELECT SQL_CALC_FOUND_ROWS, id_obrazka,nazwa,podpis FROM MIL_Pliki WHERE nazwa LIKE '%1%' OR podpis LIKE '%1%' OR id_obrazka LIKE '%1%' ORDER BY nazwa DESC LIMIT 0, 10


  1. SELECT FOUND_ROWS();
nospor
no i wlasnie o tym mowilem:
Cytat
albo korzystasz z .... kurcze, zapomniałem nazwy funkcji
winksmiley.jpg

Tak czy siak trzeba zrobic dwa zapytania. Podobno ten drugi sposob jest szybszy
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.