Autor | Zpráva | ||
---|---|---|---|
mala_slecna Profil * |
#1 · Zasláno: 29. 8. 2008, 01:47:21
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 * |
#2 · Zasláno: 29. 8. 2008, 08:16:33
Co to je za verzi mysql? Třeba pomůže použít stabilní větev.
|
||
havs Profil |
#3 · Zasláno: 29. 8. 2008, 08:18:02
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 * |
#4 · Zasláno: 29. 8. 2008, 08:24:51
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 * |
#5 · Zasláno: 29. 8. 2008, 08:26:21
havs
Je možná oboje syntaxe. S čárkou je to v jiném pořadí než se slovem offset. |
||
havs Profil |
#6 · Zasláno: 29. 8. 2008, 08:44:40
Kajman_
Aha, děkuju za vysvětlení. |
||
Časová prodleva: 16 let
|
0