Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mysql] COUNT oparty o tablicę
intol
post
Post #1





Grupa: Zarejestrowani
Postów: 110
Pomógł: 1
Dołączył: 29.07.2003

Ostrzeżenie: (10%)
X----


Witam. Muszę wykonać dość nietypowe zapytanie. Posiadam tablicę liczb, np:
[25,76,3,5,3,6,...]
gdzie niektóre liczby mogą się powtarzać.

Chciałbym teraz zliczyć, ile razy ID danego obiektu znajduje się w tej tablicy, coś w stylu:

  1. SELECT COUNT(id IN (tablica_jak_wyzej)) AS liczba


Jak skonstruować odpowiednie zapytanie w MySQL ?


--------------------
Zbiór najlepszych technologicznych artykułów (programowanie, internet, linux)
Go to the top of the page
+Quote Post
nospor
post
Post #2





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




skoro to mysql to czemu od razu sam na mysql tego nie dasz? Przenosze

Poczytaj w manualu o group by. Wysmienicie sie tu nada.
ps: choc nie jestem pewien czy oby napewno zalapalem to o co ci chodzi

edit:
@dr_bonzo tongue.gif


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

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





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


1. Czemu nie wrzuciles do Baz / Mysql ? Przenosze

2.
Cytat
Chciałbym teraz zliczyć, ile razy ID danego obiektu znajduje się w tej tablicy

Z tego co rozumiem:

  1. <?php
  2. $tablica = array(25,76,3,5,3,6,...);
  3. $stats = array_count_values( $tablica );
  4. $id_danego_obiektu = 3;
  5. printf( $stats[ 3 ] );
  6. ?>


Zgaduje, ze nie o to chodzilo, ale to zrozumialem z twojego opisu.


PS.
nospor: nie przenos jak odpowiadam tongue.gif


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
intol
post
Post #4





Grupa: Zarejestrowani
Postów: 110
Pomógł: 1
Dołączył: 29.07.2003

Ostrzeżenie: (10%)
X----


OK, rzeczywiście, powinienem przenieść.

@nospor: myślałem o GROUP BY, ale jakoś nie za bardzo mam koncepcję jak go użyć
@dr_bonzo: wyraźnie napisałem, że chodzi o zapytanie MySQL

Muszę posortować elementy z bazy, wg. tego, ile razy ich ID pojawia się w mojej tablicy, którą mam w php (tablicy liczb). Elementów w bazie może być ponad 100.000.

Przykład:
w bazie mam tabelę

id | nazwa

i w niej rekordy

1|Adam
2|Zośka
3|Krzych

,oraz tablicę w php $tablica = array(1,2,3,1,2,1);

chciałbym otrzymać odpowiedź w tej kolejności:
Adam (bo jego ID występuje w tablicy 3 razy), Zośka, Krzych

Ten post edytował intol 9.12.2006, 17:57:53


--------------------
Zbiór najlepszych technologicznych artykułów (programowanie, internet, linux)
Go to the top of the page
+Quote Post
AxZx
post
Post #5





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


jakbys jeszcze nie wpadl jak to rozwiazac:
  1. SELECT count(*) AS ile FROM tabela GROUP BY nazwa ORDER BY ile DESC


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
intol
post
Post #6





Grupa: Zarejestrowani
Postów: 110
Pomógł: 1
Dołączył: 29.07.2003

Ostrzeżenie: (10%)
X----


Hmm, AxZx nie bardzo wiem jak zastosować Twoją odpowiedź, ale myślę, że raczej nie przeczytałeś dokładnie mojego posta wyżej.

Cytat
Adam (bo jego ID występuje w tablicy 3 razy),


Wg. Twojego zapytania, otrzymam ile razy 'nazwa' pojawia się w tabeli. Mi chodzi o to, że mam w php tablicę z powtarzającymi się wartościami, gdzie przechowuję numery ID obiektów z bazy danych. Teraz chcę wybrać te obiekty wg. tego, ile razy ich ID pojawia się w tej mojej tablicy.

Mój błąd że nie wyjaśniłem tego dokładnie za pierwszym razem, bo widzę wszyscy mają problem ze zrozumieniem o co dokładnie chodzi.


--------------------
Zbiór najlepszych technologicznych artykułów (programowanie, internet, linux)
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: 22.08.2025 - 01:12