Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Zliczenie dwóch kolumn w jednym zapytaniu
kkuubbaa88
post 12.06.2010, 17:01:34
Post #1





Grupa: Zarejestrowani
Postów: 510
Pomógł: 1
Dołączył: 27.08.2007

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


witam

od dłuższego czasu mam problem z rozwikłaniem problemu w jednym zapytaniu. mam przykładową tabelę:

id | pole1
---------
1 | 0
2 | 1
3 | 4
4 | 5
5 | 2
7 | 1
9 | 0
13 | 3

i teraz potrzebuje zliczyc wszystkie wystepujace id, co robilem w standardowy sposob pobierajac wszystkie id, a potem mysql_num_rows.
dodatkowo musze zliczyc ilosc wierszy, ktore maja wartosc pola1 wiekszego od 2. Jak to wszystko zrobic w jednym zapytaniu ?
Go to the top of the page
+Quote Post
athei
post 12.06.2010, 17:14:38
Post #2





Grupa: Zarejestrowani
Postów: 389
Pomógł: 141
Dołączył: 11.04.2009

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


  1. SELECT count(id) AS 'ilosc', (SELECT count(pole1) FROM tabela WHERE pole1>2) AS 'costam' FROM tabela


Ten post edytował athei 12.06.2010, 17:15:12
Go to the top of the page
+Quote Post
kkuubbaa88
post 12.06.2010, 17:16:27
Post #3





Grupa: Zarejestrowani
Postów: 510
Pomógł: 1
Dołączył: 27.08.2007

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


wlasnie chcialem unikat podwójnych zapytan, bo to wydolnościowo gorzej wypada. wiec nie da rady zrobic tego inaczej jak podwojnie ?
Go to the top of the page
+Quote Post
kartin
post 12.06.2010, 17:22:09
Post #4





Grupa: Zarejestrowani
Postów: 246
Pomógł: 79
Dołączył: 25.05.2010

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


Wydajnościowo to gorzej działa mysql_num_rows()

Możesz też użyć takiego zapytania
  1. SELECT COUNT(id) FROM test
  2. UNION
  3. SELECT COUNT(id) FROM test WHERE pole1 > 2


--------------------
Jeśli ten post pomógł to kliknij przycisk po lewej stronie.
Nie pomagam przez PW, GG, e-mail, faks, telegram, znaki dymne, ...
Go to the top of the page
+Quote Post
kkuubbaa88
post 12.06.2010, 17:30:22
Post #5





Grupa: Zarejestrowani
Postów: 510
Pomógł: 1
Dołączył: 27.08.2007

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


a musi być za każdym razem podwójne select ? w moim przypadku lacze z 6 tabel do tego jest wiele warunków i przy podwójnym zapytaniu będę musiał to powtarzać i w sumie zapytanie będzie miało z 20 lini....
Go to the top of the page
+Quote Post
bastard13
post 12.06.2010, 20:34:26
Post #6





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


To albo chcesz zrobić wszystko w jednym zapytaniu, albo chcesz mieć krótkie i przejrzyste, kilku-wyrazowe zapytania, których zadawanie z pewnością zajmie więcej niż dwadzieścia linii. I będzie dużo mniej wydajne...


--------------------
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: 12.06.2025 - 16:50