[MySQL] Rekordy nieprzyległe (LIMIT ?)

0

Czy jest możliwość wybrania z tabeli rekordów nieprzyległych? Chciałbym mieć możliwość zbudowania zapytania, które zwraca mi 1 rekord i np. rekordy od n do n+10. Co do tej drugiej części to nie ma problemu jak wykorzystuję LIMIT, ale gorzej jest, jeżeli chciałbym jeszcze pierwszy rekord mieć wyświetlany. Na razie robię to za pomocą dwóch zapytań, co mi bardzo nieodpowiada :(

0

WHERE (id = 1) OR ((id >= n) AND (id <= n 10)) ??

0

Mam już warunek inny, tak więc nie pokazuje wszystkich nr id :( Chodzi o ograniczenie z tych rekordów, które już spełniają warunki.

0

Czy jest możliwość wybrania z tabeli rekordów nieprzyległych? Chciałbym mieć możliwość zbudowania zapytania, które zwraca mi 1 rekord i np. rekordy od n do n+10. Co do tej drugiej części to nie ma problemu jak wykorzystuję LIMIT, ale gorzej jest, jeżeli chciałbym jeszcze pierwszy rekord mieć wyświetlany. Na razie robię to za pomocą dwóch zapytań, co mi bardzo nieodpowiada :(

Nie wiem czy o to chodzi ale ja robie to w taki sposob:

select * from tabale where warunek LIMIT start,koniec;

gdzie start to numer rekordu od ktorego ma sie zaczac wyswietlanie, natomiast koniec to liczba rekordow do zaznaczenia.
Np.
select * from tabale LIMIT 5,6;
wyswietlone zostana rekordy: 5,6,7,8,9,10
Mysle ze chodzilo o to.

0

Nieprzyległe
Tak:

select * from tabale LIMIT 5,6;
wyswietlone zostana rekordy: 5,6,7,8,9,10

Otrzymuję przylegajace do siebie rekordy. Są ustawione po kolei. Ja chciałbym otrzymać np. tak:
5,8,9,10
Czyli pierwszy + cały blok następnych. Przewertowałem już dokumentację od MySQL i nic takiego nie znalazłem jak na razie :(
A nie mogę według przepisu Vogel'a zrobić, gdyż to nie są kolejne rekordy w bazie, ale kolejne spełniające pewien warunek.

0

Wystarczy ze przekazesz id od ktorego maja zostac wyswietlone rekordy.

$query = "SELECT * FROM table WHERE id>=$id LIMIT $limit ";

0

Ale ja nie mam pola ID!! :(
Tzn. pole jest, ale to jest np. tak:
ID
Nazwa
I mamy np. rekordy
1 q
2 w
3 e
4 q
5 q
6 q
I mam zapytanie
SELECT * FROM tabela WHERE Nazwa = 'q'
Czyli zwróci mi:
1 q
4 q
5 q
6 q

I z tego co otrzymałem, ja np. chciałbym mieć tylko rekordy:
1 i wszystkie od 3 zaczynające się, czyli:
1, 5, 6

0

Stwórz sobie pole ID integer, z numerami rekordów, tak będzie Ci łatwiej kombinować

select * from tabela where (costam = 'costam') AND (id > 10)

Nie wiem czy to tak moze byc :)

0

Dobra. Zapomnijmy o tym, bo albo ja nie potrafię tłumaczyć albo mało kto z odpowiadających potrafi czytać ze zrozumieniem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1