Autor Zpráva
mazlo
Profil
Ahoj, potřebuju poradit, jak udělat v mysql dotaz na následující či předchozí záznam.
Vzpoměl jsem si na Pascal a jeho funkce Pred( ) a Succ() - i když ty fungují jen u ordinálních typů :-)

Potřebobal bych asi něco takového (když by teda funkce pred() existovala):
SELECT * FROM tabulka WHERE pred(sloupec) = $hodnota ORDER by sloupec

---------------------------

Když by byl sloupec typu INT a auto increment, tak by stačilo v PHP odečíst nebo přičíst jedničku.
Jenže co dělat, když někdo vymaže pár záznamů nebo bude sloupec třeba varchar?
A selectovat všechny záznamy, procházet je a hledat předchozí a následující záznam mi připadá pěkná prasárna... :-(
Alphard
Profil
select * from tabulka where sloupec < 5 order by sloupec desc limit 1
mazlo
Profil
Super, mockrát díky :-)

Nějak jsem si neuvědomil, že můžu používat operátory i u nečíselných typů :-/
Kajman_
Profil *
Dobré je tam určit jedinečné pořadí, např si pomoci id, když jsou sloupečky stejné, aby to fungovalo správně...

Tady je příklad, jak vybrat předchozí a další vůči současnému id, ale podle jiného sloupečku.

(select 'predchozi' smer, a.* from tabulka a, tabulka b where b.id=$id and (a.sloupecek<b.sloupecek or (a.sloupecek=b.sloupecek and a.id<b.id)) order by a.sloupecek desc, a.id desc limit 1)
union
(select 'dalsi' smer, a.* from tabulka a, tabulka b where b.id=$id and (a.sloupecek>b.sloupecek or (a.sloupecek=b.sloupecek and a.id>b.id)) order by a.sloupecek, a.id limit 1)
Toto téma je uzamčeno. Odpověď nelze zaslat.