![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam problem z MySQL, konkretniej z pewnymi pytaniami:
Jak zadać pytanie do Bazy danych, tak, aby zwrócone zostały 2 kolumny: 1. Ilość użytkowników 2. Ilość gości Goście mają userid = 0 Natomiast Użytkownicy userid > 0. Pytanie polegało by na takim czymś
oczywiście nie działa... Podanto mam problemy z pytaniami: Cytat WYBIERZ COS Z TABELI, GDZIE CAT = 15 ORAZ (JEŻELI POLE>0 WTEDY id=5 W PRZECIWNYM RAZIE id=3) Jak się pisze takie pytania? Pozdrawiam. Ten post edytował Spirit86 17.12.2005, 19:33:56 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Nie powiedzialem, ze nie masz (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Jak tylko zobaczylem EXPLAIN'a do tego to troche zwatpilem w uzytecznosc takiego rozwiazania na wiekszych tabelach. Swoja droga ciekawe, jak by to sie skalowalo, gdyby grup po ktorych grupujemy bylo wiecej... ciekawe czy wtedy tez metoda z UNION byla by lepsza :] edit: nie moglem sie powstrzymac i sprawdzilem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jesli chodzi o SQL Server 2005 to juz przy 3 grupach szala sie odwraca, a czym ich wiecej (testowalem do 5) tym bardziej rosna dysproporcje, tym razem na korzysc rozwiazania z GROUP BY. MySQL jednak nie daje za wygrana i mimo teoretycznie gorszego EXPLAIN'a w wersji z UNION to rozwiazanie jest szybsze. Jak mozesz to sprawdz jak to sie rozegra na PgSQL :] edit2: nie chodzi mi o grupowanie po wiekszej ilosci pol, tylko z wieksza iloscia grup w takim sensie, ze np. chcemy znalezc na przykladzie tej tabeli ilosc userow z id = -1, osobno z id < 100, potem z id IN [101..130] i ostatnia grupa z id > 130 i do kazdej z tych grup ilosci. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 02:21 |