Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Projektowanie bazy (zliczanie rekordów)
matti9410
post
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 10.07.2013

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


Mam takie pytanie mam taką baze
kategoria | link | temat
-------------------------------
potret | sad | sadsd
produkt | sad | sadsd
potret | sad | sadsd
potret | sad | sadsd
produkt | sad | sadsd
potret | sad | sadsd


i pytanie czy idzie jakoś zliczyć rekordy które mają wpis w kolumnie kategoria np portret czy muszę dodać jakąś osobną kolumnę ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
nospor
post
Post #2





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




normalnie robisz warunek
...WHERE kategoria='portret'
i juz


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

"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
matti9410
post
Post #3





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 10.07.2013

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


Ale chodzi mi o stronicowanie żeby wiedzieć ile jest wpisów żeby wyświetlić zdjęcia
Go to the top of the page
+Quote Post
nospor
post
Post #4





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




No i?
Pytales jak zliczyc liczbe rekordow spelaniajacych dany warunek. Podalem ci wiec jak napisac taki warunek. Jak masz jakis inny problem to go opisz.


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

"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
matti9410
post
Post #5





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 10.07.2013

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


Widocznie nie rozumiem jak to zrobić ;/ przepraszam haha.gif

chodzi o to że mam np. 100 wpisów w bazie i w kolumnie kategoria mam różne wartości i chciałbym wiedzieć ile jest rekordów z wartością portret w kolumnie kategoria. To jak to zrobić tym co ty tam pisałeś ?
Go to the top of the page
+Quote Post
nospor
post
Post #6





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




Sadzilem, ze o COUNT(), ktore zlicza rekordy, to slyszales.....

select count(*) from TABELA where kategoria='portret'
To ci zwroci rekord z liczbą rekordow.


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

"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
matti9410
post
Post #7





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 10.07.2013

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


Ok dzięki za pomoc ! smile.gif Jestem zielony w tym jak na razie, uczę się sam wiec jak widać szału z wiedzą nie ma tongue.gif
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #8





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


  1. SELECT SUM(kategoria='portret') AS suma


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #9





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




@ZaXaZ a po grzyba ma zapytanie leciec po wszystkich rekordach, skoro wiadomo ktore go interesują...? Twoja propozycja jest toalnie nieoptymalna. Fakt, przy 100 rekordach nie będzie widać różnicy, ale przy wiekszej ich liczbie roznica czasu wykonania będzie widoczna gołym okiem


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

"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
ZaXaZ
post
Post #10





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Cytat(nospor @ 19.07.2014, 15:59:51 ) *
@ZaXaZ a po grzyba ma zapytanie leciec po wszystkich rekordach, skoro wiadomo ktore go interesują...? Twoja propozycja jest toalnie nieoptymalna. Fakt, przy 100 rekordach nie będzie widać różnicy, ale przy wiekszej ich liczbie roznica czasu wykonania będzie widoczna gołym okiem


Dzięki, potestuje bo właśnie jestem na etapie optymalizacji kodów.

mały ad. jednak sum nie uwzgledni pustych pól w porównaniu do count(*).

Ten post edytował ZaXaZ 19.07.2014, 15:02:53


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #11





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




@matti9410 a Ty skoro sie uczysz, to popraw swoją strukture. Poprawna powinna wygladac tak:

Tabela KATEGORIA
ID
NAZWA

Tabela TWOJA_CO_MASZ_TERAZ
ID
ID_KATEGORII (a nie nazwa jak masz teraz)
LINK
TEMAT


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

"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
ZaXaZ
post
Post #12





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


@nospor, a co w przypadku gdy musimy policzyc kilka roznych rzeczy? (co lepiej, jedno zapytanie z kilka sum czy kilka zapytan z count(*)) ?


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #13





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




Cytat
@nospor, a co w przypadku gdy musimy policzyc kilka roznych rzeczy? (co lepiej, jedno zapytanie z kilka sum czy kilka zapytan z count(*)) ?

Na pewno szybkie będzie UNION, gdzie kazdą liczbę policzysz oddzielnym zapytaniem i połączysz w jedno przez UNION

Oczywiscie pozostaje kwestia odpowiednich indeksow na szukane pole, ale to chyba oczywiste.

Mozna tez isc w tę stronę:
  1. SELECT COUNT(IF(WARUNEK1,1,NULL)),COUNT(IF(WARUNEK2,1,NULL)) FROM TABELA WHERE WARUNEK1 OR WARUNEK2

Przy prawidłowych indeksach też powinno smigac w miare ładnie.

lub poprostu tak
  1. SELECT COUNT(*) FROM TABELA WHERE WARUNEK1 OR WARUNEK2 GROUP BY POLE


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

"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 Aktualny czas: 21.08.2025 - 15:42