Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zapytanie sql pobierające sąsiednich wierszy wskazanego wiersza ;)
VegetaSSJ
post
Post #1





Grupa: Zarejestrowani
Postów: 78
Pomógł: 2
Dołączył: 21.10.2006

Ostrzeżenie: (0%)
-----


Trochę niezrozumiały tytuł topiku ale może tu uda mi się wyjaśnić.
Mam tabelę złożoną z kolumn: kol1, kol2, kol3 ... powiedzmy że w 'n'-tym wierszu w kol1 jest umieszona wartość 'abc'. Teraz tak, znam tą wartość 'abc', jednak nie wiem w którym dokładnie jest wierszu a potrzebuje pobrać wartości z wiersza 'n-1' i 'n+1' kol1.
Jeżeli ktoś potrafi napisać takie zapytanie bardzo bym prosił.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
fgk
post
Post #2





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 5.08.2006
Skąd: Opole

Ostrzeżenie: (0%)
-----


Cytat(VegetaSSJ @ 22.04.2007, 11:40:19 ) *
Wiem kolego. w rzeczywistości kolumna 'kol1' ma wartości int, jest kluczem głównym z atrybutem autoicrement, chodzi tylko o to że może się zdarzyć że jak mam n=53 to nie ma wiersza n-1 ponieważ został wcześniej usuniety, chyba zostaje mi napisanie skryptu który będzie sprawdzał czy jest n-1, jeżeli nie to n-2 itd tylko czy może da się coś takiego napisać z poziomu sql aby uniknąć wysyłania masy zapytań ?


Ja bym zrobił tak bez zadnego kombinowania:

1. pobierasz id (numer) wiersza: "select `n` from `tabela` where kol1='abc'", zalozmy ze wynik zwrócony n=53,
2. pobierasz pierwszy wiersz o numerze mniejszym od tego n: "select * from `tabela` where `n`<53 LIMIT 1" -czyli przerwie przeszukiwanie tabeli po znalezieniu pierwszego wiersza o n<53
3. pobierasz pierwszy wiersz o numerze wiekszym od n: "select * from `tabela` where `n`>53 LIMIT 1"

moze sie zdazyc ze selecty z punktów 1, 2 lub 3 nic nie zwrócą więc bedziesz musiał jeszcze zabezpieczyc skrypt na taka ewentualnosc. Powodzenia i napisz jak poszło!
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 04:52