pobranie fragmentu posortowanej tablicy

0

Mam np taką tablicę:

id nazwa
1 buba
2 zuba
..
21 guga
21 papa

I odpytuję o dane posortowane wg. nazw
SELECT * FROM tablica ORDER BY nazwa

Jak sformułować zapytanie, jeśli chcę w takim wypadku pobrać tylko rekordy 1-5 albo 5-10 wedle kolejności wynikającej z aktualnego sposobu sortowania?

2

Może LIMIT?

https://www.w3schools.com/sql/sql_top.asp

SELECT * FROM tablica ORDER BY nazwa LIMIT 3;
4

Jaki silnik? Dla MySql wystarczy limit lub kombinacja limit i offset.
Dla przypadku wierszy 5-10

 SELECT * FROM tablica ORDER BY nazwa  LIMIT 5 OFFSET 5;

Limit mówi ile wierszy, offset od którego zacząć.
P.S.
Tabela nie tablica, pewnie słownik zadziałał, ale niektórzy się przyczepią.

3

A w jakiej bazie - to się trochę różni w zależności od bazy. Z takich ogólnych rzeczy to chyba row_count będzie najlepszy: sqlitetutorial.net/sqlite-window-functions/sqlite-row_number/

0
jurek1980 napisał(a):

Jaki silnik?

SELECT * FROM tablica ORDER BY nazwa LIMIT 5 OFFSET 5;

MySQL, limit i offset robią, co trzeba :)
Co prawda niezbyt logicznie offset musi być po limicie, ale to już pikuś.

P.S.
Tabela nie tablica, pewnie słownik zadziałał, ale niektórzy się przyczepią.

E... czyli:

  • w HTML mamy tabele,
  • JS / PHP tablice,
  • a w SQL znowu tabele

?

4
Freja Draco napisał(a):

E... czyli:

  • w HTML mamy tabele,
  • JS / PHP tablice,
  • a w SQL znowu tabele

?

Tak. Po angielskiemu też się różnią.
Tablica - Array
Tabela - Table

2

w HTML mamy tabele,
JS / PHP tablice,
a w SQL znowu tabele

Tak.

0
Freja Draco napisał(a):
jurek1980 napisał(a):

Jaki silnik?

SELECT * FROM tablica ORDER BY nazwa LIMIT 5 OFFSET 5;

MySQL, limit i offset robią, co trzeba :)
Co prawda niezbyt logicznie offset musi być po limicie, ale to już pikuś.

Ale chyba można to też zapisać w stylu LIMIT 10, 5 gdzie pierwsza liczba (10) to offset, a druga (5) to ilość danych. Masz wtedy logiczną kolejność. :)

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