Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] lekko skomplikowane sortowanie
Forum PHP.pl > Forum > PHP
lonek
Witajcie,

Proszę szanownych kolegów i koleżanki o pomoc. Nie śpię od około 30h i po prostu nie mogę wymyślić metody na następujące zadanie.. wstydnis.gif :

Mam tabelę w MySQL o mniej więcej takiej strukturze (w tabeli kilkadziesiąt różnych itemów, do każdego itemsa może być przypisane maksimum 5 kolorów, których też jest kilkadziesiąt):

+-----------+--------+--------+--------+--------+--------+
| item_name | kolor1 | kolor2 | kolor3 | kolor4 | kolor5 |
+-----------+--------+--------+--------+--------+--------+
| item_0001 | 000001 | 000015 | 000019 | 000000 | 000000 |
+-----------+--------+--------+--------+--------+--------+
| item_0002 | 000003 | 000015 | 000029 | 000031 | 000000 |
+-----------+--------+--------+--------+--------+--------+
...
+-----------+--------+--------+--------+--------+--------+
| item_000n | 000010 | 000015 | 000016 | 000018 | 000025 |
+-----------+--------+--------+--------+--------+--------+


Teraz chcę wysłać PHPem takie zapytanie do bazy, które by mi posortowało ilość poszczególnych itemów z danym kolorem, czyli powiedzmy dało listę w postaci:

- Jest 15 itemów z kolorem 15,
- Jest 12 itemów z kolorem 28,
- Jest 9 itemów z kolorem 33,
itd.

Malejąco, od koloru z największą liczbą itemów do najmniejszej. Jak to zrobić? snitch.gif
Darti
  1. (SELECT count(kolor1) AS ilosc, kolor1 AS kolor FROM kolory GROUP BY kolor1)
  2. UNION
  3. (SELECT count(kolor2), kolor2 FROM kolory GROUP BY kolor2)
  4. UNION
  5. (SELECT count(kolor3), kolor3 FROM kolory GROUP BY kolor3)
  6. UNION
  7. (SELECT count(kolor4), kolor4 FROM kolory GROUP BY kolor4)
  8. UNION
  9. (SELECT count(kolor5), kolor5 FROM kolory GROUP BY kolor5)
  10. ORDER BY kolor
lonek
Thanks smile.gif
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.