Autor Zpráva
mala_slecna
Profil *
Ahoj všem,
potřebuji pomoc nebo skončím u psychiatra!

Mám tabulku Jmena a v ní sloupce id, jmeno. Sloupec id má nastavené auto_increment a je primárním klíčem tabulky.

Na tuto tabulku mám dotaz:
SELECT * FROM Jmena ORDER BY id ASC LIMIT 5 OFFSET 10


Tímto dotazem chci vytáhnout z tabulky řádky s id 10,11,12,13,14, ale místo toho se nepochopitelně vybere 13,14,15,16,17 ; sem tam to dokonce nějaké id přeskočí např. to vytáhne 13,16,17,18,19! A to i přestože id 14,15 existuje!



Lámu si s tím chudák hlavu už několik dní.

Průserem je, že mě OFFSET vůbec "neposlouchá". První z vybraných řádků je vždy až třetí řádek po nastaveném offsetu a sem tam to nějaké id při výběru i přeskočí!


Vysvětlí mi někdo prosím tyto nepochopitelné jevy?

MUCKrád děkuji,
vaše mala_slecna
Kajman_
Profil *
Co to je za verzi mysql? Třeba pomůže použít stabilní větev.
havs
Profil
Teď jsem z toho sám zmaten,
jestli se nepletu, tak ofset je jen název první hodnoty, tedy by mělo být:

...LIMIT 9, 5 - tj. od kterého řádku a kolik
Kajman_
Profil *
A offset udává počet přeskočených řádků... pokud tedy tedy chcete první desítku (a opravdu nejsou v řadě id žádné mezery), použijte offset 9.

A co vypíše?
select count(*) pocet from jmena where id between 1 and 10
Kajman_
Profil *
havs
Je možná oboje syntaxe. S čárkou je to v jiném pořadí než se slovem offset.
havs
Profil
Kajman_
Aha, děkuju za vysvětlení.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0