Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Proste pytanie - zliczanie w zapytaniu
pc5
post 25.03.2009, 20:22:25
Post #1





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 10.03.2005

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


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ć?

Ten post edytował pc5 25.03.2009, 20:23:41
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
nospor
post 25.03.2009, 20:27:10
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kefirek
post 25.03.2009, 20:44:32
Post #3





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


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();


Ten post edytował kefirek 25.03.2009, 20:46:07
Go to the top of the page
+Quote Post
nospor
post 25.03.2009, 20:48:05
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2025 - 20:49