![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 170 Pomógł: 4 Dołączył: 11.08.2006 Ostrzeżenie: (10%) ![]() ![]() |
Witam,
zastanawiam się jak wykonać coś takiego w MySQL: mam sobie tabele w której występują kolumny id, moje_id ... chciałbym pobrać tylko te rekordy dla których moje_id powtarza się 3 razy Przykład tabeli: id | moje_id 1 | 40 2 | 40 3 | 5 4 | 5 5 | 5 6 | 2 7 | 2 8 | 2 9 | 7 10| 7 Czyli z tej tabeli ma pozostać tylko: id | moje_id 3 | 5 4 | 5 5 | 5 6 | 2 7 | 2 8 | 2 jak już uda mi się to wykonać to będę to wrzucał do nowej tabeli i pobierał na stronę tylko część według daty... Ma ktoś jakiś pomysł jak to wykonać? Pozdrawiam |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 170 Pomógł: 4 Dołączył: 11.08.2006 Ostrzeżenie: (10%) ![]() ![]() |
@wookieb, tylko dlaczego count(id) = 3 ?
mi się wydaje że id malo ma do tego, maja to byc tylko te rekordy w ktorych moje_id powtarza sie 3 razy, nie mniej i nie wiecej... od tego zapytania FF mi sie zwiesil (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Przeczytaj manual do tej funkcji, nie chce mi się tłumaczyć dlaczego tak jest aczkolwiek powinno działac.
A ile masz rekordów w tej twojej tabeli? Dodatkowo czy masz klucz na polu "moje_id" ? Dodatkowo co to za test wydajności zapytanie przez "firefox"? |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 170 Pomógł: 4 Dołączył: 11.08.2006 Ostrzeżenie: (10%) ![]() ![]() |
A ile masz rekordów w tej twojej tabeli? ponad 13000 Dodatkowo czy masz klucz na polu "moje_id" ? nie Dodatkowo co to za test wydajności zapytanie przez "firefox"? przez phpmyadmin odpalalem (IMG:style_emoticons/default/winksmiley.jpg) a co polecasz? (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
To załóż indeks.
To testowania polecam linię komend (jeżeli masz taką możliwość) Jeżeli założenie indeksu nic nie pomoże to bedziesz musiał stworzyć dodatkową tabelę przechowujące moje_id i ilość wystąpień. Moje zapytanie było błędne, oto poprawione
Z moich testów wynika, że po założeniu indeksu powinno smigać aż miło Nie wiem czy wiesz jak założyć iindeks ale na wszelki wypadek podpowiem
Ten post edytował wookieb 22.08.2010, 11:48:29 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 170 Pomógł: 4 Dołączył: 11.08.2006 Ostrzeżenie: (10%) ![]() ![]() |
Zrobiłem limit i zaczęło działać, jeszcze musze potestować bez limitów...
no i zakładać indexu nie trzeba było (IMG:style_emoticons/default/winksmiley.jpg) kod wygląda tak:
wookieb wielkie dzięki za pomoc (IMG:style_emoticons/default/smile.gif) Ten post edytował terabit 22.08.2010, 11:50:33 |
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
A indeks założyłeś?
I koniecznie, ale to koniecznie użyj silnika InnoDB w tej tabeli. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 170 Pomógł: 4 Dołączył: 11.08.2006 Ostrzeżenie: (10%) ![]() ![]() |
nie założyłem, a co da założenie?
Można wiedzieć dlaczego InnoDB, będzie szybciej? (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
nie założyłem, a co da założenie? Potężne zwiększenie prędkości wykonywania zapytania Można wiedzieć dlaczego InnoDB, będzie szybciej? (IMG:style_emoticons/default/winksmiley.jpg) Dużo by gadać (po prostu większy wykład) ale uwierz da jeszcze większą szybkość wykonywania (IMG:style_emoticons/default/smile.gif) Zresztą porównaj dla testów aktualny czas z tym po mojej radzie. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 170 Pomógł: 4 Dołączył: 11.08.2006 Ostrzeżenie: (10%) ![]() ![]() |
no nooo
różnica ogromna! wielkie dzięki :] |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 20:19 |