Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] COUNT oparty o tablicę
Forum PHP.pl > Forum > Bazy danych > MySQL
intol
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 ?
nospor
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
dr_bonzo
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
intol
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
AxZx
jakbys jeszcze nie wpadl jak to rozwiazac:
  1. SELECT count(*) AS ile FROM tabela GROUP BY nazwa ORDER BY ile DESC
intol
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.
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.