![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 17.10.2006 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Witam,
chce wyciagnac z tabeli id wszystkich userow, ktorzy maja accepted=1 i przy okazji ich liczbe probowalem paru kombinacji count(*) z selectem, group by ale raczej na sile czy to proste zapytanie nie powinno dzialac?
albo to:
prosze o pomoc/wskazowki ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 225 Pomógł: 18 Dołączył: 30.06.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Ja bym wykonał tylko z ID i pobrał z servera ile rekordów znalazł (w php np $result->affected_rows ) , w bardziej rozbudowanych przypadkach 2 zapytania :/
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 17.10.2006 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
przypadek jest bardziej rozbudowany, ale chodzi mi o ta regule
czy w 1 zapytaniu cos takiego moge zrobic? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 225 Pomógł: 18 Dołączył: 30.06.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Tu masz o count http://dev.mysql.com/doc/refman/5.0/en/counting-rows.html
jeżeli to ma być tylko to co mówisz na na prawdę wystarczy
można też:
ale nie wiem czy nie szybsze będą 2 zapytania -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 17.10.2006 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
mysle, ze zdecydowanie szybciej bedzie kiedy do zapytania wloze count(*) zamiast robic dwa
Twoja druga sugestia to dokladnie to samo co napisalem w pierwszym poscie i sytuacja tu jest troche dziwna. Otrzymuje komunikat Pokaż rekordy 0 - 6 (7 wszystkich, Wykonanie zapytania trwało 0.0591 sekund(y)) ale pod spodem wyswietla mi blad:
MySQL 4.1.21 gdzie jest blad? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 225 Pomógł: 18 Dołączył: 30.06.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
1. Przyjżyj się mojej wersji i swojej, jest kilka subtelnych różnic. Wygląda na to że ważna jest kolejność. Po za tym po nawiasie z podzapytaniem użyłem aliasu.
2. 2 zapytania są szybsze. Przy nieco większej liczbie wyników (27) zapytanie z podzapytaniem wykonywało się 3 razy dłużej od pierwszego, które miało tylko pobrać ID. Niestety PHPmyadmin nie epokazał jak długo trwało zapytanie z count (chyba było zbyt krótkie ![]() W MySQL podzapytania bywają piekielnie wolne niestety. BTW: Proponuję używać odwróconych nawiasów do nazw pól (`pole`), nazwy pól mogą też generować błędy. -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 17.10.2006 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
1. Przyjżyj się mojej wersji i swojej, jest kilka subtelnych różnic. Wygląda na to że ważna jest kolejność. Po za tym po nawiasie z podzapytaniem użyłem aliasu. faktycznie, co do tego masz racje, ale probowalem tez zapytania ktore Ty podales i dupka ![]() kolejnosc wiec chyba nie ma znaczenia, ale co mnie dalej dziwi to fakt, ze zapytanie wykonuje sie "ale nie do końca", tzn. Cytat Otrzymuje komunikat Pokaż rekordy 0 - 6 (7 wszystkich, Wykonanie zapytania trwało 0.0591 sekund(y)) ale pod spodem wyswietla mi blad: Błąd: Zapytanie SQL: SHOW KEYS FROM #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 ten blad i SHOW KEYS FROM nie wiem skad sie bierze, probowalem na innej tabeli w ten sposob - to samo Cytat 2. 2 zapytania są szybsze... Ja probowalem dla 400 userow - 0,1sek A skoro juz weszedlem w temat to chcialbym sie przekonac jak jest szybciej ![]() Co moze powodowac blad? |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 07:50 |