Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 19 Dołączył: 24.12.2003 Skąd: Przemyśl Ostrzeżenie: (0%)
|
Witam
Mam pytanie czy istnieje jakiś operator, funkcja w mysql-u dzięki której mógłbym uzyskać informację na jakiej pozycji znajdzie się pewien rekord w zwróconych wynikach, przy założeniu oczywiście konkretnego ordera. Oczywiście mogę pobrac wszystkei dane i przelecieć sobie po tablicy wnikowej w php, ale interesuje mnie to czy mozna te dane pobrać już wcześniej w samym zapytaniu. Np. pobieram wszystkie dane w porządku rosnącym i na którym miejscu jest rekord o id 50. Dzięki pozdro. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 313 Pomógł: 24 Dołączył: 9.08.2008 Skąd: Kielce Ostrzeżenie: (0%)
|
hmm... rekord o id = 50 jest na pozycji 50 ? czy ja źle pytanie zrozumiałem ?
Ten post edytował pgrzelka 25.05.2009, 14:01:01 |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 19 Dołączył: 24.12.2003 Skąd: Przemyśl Ostrzeżenie: (0%)
|
hmm... rekord o id = 50 jest na pozycji 50 ? czy ja źle pytanie zrozumiałem ? No raczej źle zrozumiałeś. Id to kolejny nr który jest autoinkrementowany i jest np. kluczem głównym. Np w tabeli gallery będzie idgallery. Oczywiście jeśli będziemy dodawać kolejen rekordy i ich nie usuwać to powinno sięzgadzac ale jeśli usuniemy np 5 pierwszych to rekord o id 5 będzie już na pierwszy miejscu. |
|
|
|
Post
#4
|
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa |
|
|
|
|
Post
#5
|
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk |
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 10 Dołączył: 3.09.2006 Skąd: Bishop Auckland Ostrzeżenie: (0%)
|
możesz to zrobić przy użyciu while oraz iteracji (tak myślę):
Sprawdziłem u siebie i działa. Wystarczy, że przystosujesz na swoje potrzeby.. Ten post edytował TheaSiX 25.05.2009, 17:40:39 |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 19 Dołączył: 24.12.2003 Skąd: Przemyśl Ostrzeżenie: (0%)
|
możesz to zrobić przy użyciu while oraz iteracji (tak myślę):
Sprawdziłem u siebie i działa. Wystarczy, że przystosujesz na swoje potrzeby.. Wiem że działa bo to żaden problem przelecieć po pętli i znaleźć swój rekord, ale jak zaznaczyłem na samym początku interesuje mnie rozwiązanie uzyskania takiego info przez samo zapytanie. Skorzystałem z linku podanego przez kolegę wookieb-a i tam znalazłem, rozwiązanie, które wkleję dla potomnych poniżej
Dzięki i pozdro. Wiem że działa bo to żaden problem przelecieć po pętli i znaleźć swój rekord, ale jak zaznaczyłem na samym początku interesuje mnie rozwiązanie uzyskania takiego info przez samo zapytanie. Skorzystałem z linku podanego przez kolegę wookieb-a i tam znalazłem, rozwiązanie, które wkleję dla potomnych poniżej
Dzięki i pozdro. Pojawił mi się jednak pewien problem z tym rozwiazaniem nospora. Jeżeli wyciągam dane z jednej tabeli uzyskuję oczekwiany wynik jeżeli natomiast zastosuję jakiegoś inner joina z drugą tabelą to już otrzymuję zero. Co ciekawe wystepuje to gdy mam klauzulę order by jeżeli natoamist ordera wywalę to wynik mam zwracany poprawnie. No ale bez ordera to mi akurat nie pasuje. Miałby ktoś pomysł w czym moze być problem ? Ten post edytował jajcarzd1 26.05.2009, 07:41:39 |
|
|
|
Post
#8
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
to pokaz to nowe zapytanie co masz
|
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 19 Dołączył: 24.12.2003 Skąd: Przemyśl Ostrzeżenie: (0%)
|
|
|
|
|
Post
#10
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
a czy nie masz przypadkiem bledu zapytania? Sprawdzales to?
|
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 19 Dołączył: 24.12.2003 Skąd: Przemyśl Ostrzeżenie: (0%)
|
|
|
|
|
Post
#12
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
sorki ze sie czepiam, ale jak sprawdzales czy nie ma bledu zapytania?
Bo jak bys mial blad zapytania, to wtedy faktycznie dostaniesz 0. |
|
|
|
Post
#13
|
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 19 Dołączył: 24.12.2003 Skąd: Przemyśl Ostrzeżenie: (0%)
|
sorki ze sie czepiam, ale jak sprawdzales czy nie ma bledu zapytania? Bo jak bys mial blad zapytania, to wtedy faktycznie dostaniesz 0. Hmm no chyba nie bardzo się rozumiemy. Jeżeli w podzapytaniu nie zastosuję ordera to wynik mam poprawny jeżeli go natomiast dołoże to wtedy mam zero więc zapytanie powinno być ok. Poza tym zerknąłem na wynik tego podzapytania pozostawiając tylko
i z orderem w kolumnie "if(c.idconfig=@id, @idnr := @nr,@idnr=@idnr)" mam jedynki a przy odpowiendim id mam 0 natomiast bez ordera mam jego pozycję |
|
|
|
Post
#14
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
mozesz zapodac screena z wynikow tego zapytania, o którym w ostatnim poscie wspomniales?
|
|
|
|
Post
#15
|
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 19 Dołączył: 24.12.2003 Skąd: Przemyśl Ostrzeżenie: (0%)
|
Pierwsze
http://jajcarz.linuxpl.eu/images/bez_ordera.jpg Drugie
http://jajcarz.linuxpl.eu/images/z_orderem.jpg |
|
|
|
Post
#16
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Kurcze, to jest nie logiczne.... albo mam zacme i nie widze jakiegoś banału :/
Przeslij jak mozesz mi na maile strukture i dane tych dwoch tabel. Jesli jest duzo rekordow to skróc do np. 50. Jak masz tajne dane to sie ich pozbadz. W wolnej chwili lukne na to na spokojnie u siebie Wyslij na adres [mojnick][malpa]gmail[kropka]com |
|
|
|
Post
#17
|
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 19 Dołączył: 24.12.2003 Skąd: Przemyśl Ostrzeżenie: (0%)
|
Kurcze, to jest nie logiczne.... albo mam zacme i nie widze jakiegoś banału :/ Przeslij jak mozesz mi na maile strukture i dane tych dwoch tabel. Jesli jest duzo rekordow to skróc do np. 50. Jak masz tajne dane to sie ich pozbadz. W wolnej chwili lukne na to na spokojnie u siebie Wyslij na adres [mojnick][malpa]gmail[kropka]com Ok poszło |
|
|
|
Post
#18
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
no i juz wiem gdzie jest blad. chodzi o @nr, do ktorego nie przypisuja sie wartosci gdy jest join i order
Wyniki 1 0 2 0 3 0 4 0 5 0
Wyniki 1 1 2 2 3 3 4 4 5 5 teraz wywalamy join i nie zaleznie czy jest order czy nie to dziala
Wyniki 1 1 2 2 3 3 4 4 5 5 No i na chwile obecną nie rozumiem tego zachowania. Co ma left join w połączeniu z order, ze nie dziala przypisanie zmiennej @nr. Choc w pewnym sensie dziala, bo @nr:=@nr+1 rosnie prawidlowo |
|
|
|
Post
#19
|
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 19 Dołączył: 24.12.2003 Skąd: Przemyśl Ostrzeżenie: (0%)
|
No i na chwile obecną nie rozumiem tego zachowania. Co ma left join w połączeniu z order, ze nie dziala przypisanie zmiennej @nr. Choc w pewnym sensie dziala, bo @nr:=@nr+1 rosnie prawidlowo No ja niestety też (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
![]() ![]() |
|
Aktualny czas: 22.12.2025 - 17:33 |