Autor Zpráva
mikul
Profil
Zdravím.
Mám-li 'id' obrázku z dtb a chci vybrat nejbližsí větší, dám where id>$id + ošetřím si aby to opravdu bylo první větší a jen jedno. To není problém. Co když ale ve výpisu řadím podle názvu obrázku abecedně a chci vybrat obrázek z tabulky (jeho název + url a zbytek..), který je o jedno 'větší', neboli následuje v abecedním řazení ihned za tím právě vybraným. Pomocí čeho se to porovnává?
Díky.
Alphard
Profil
mělo by to fungovat stejně, jen pozor na apostrofy
where retezec > 'n'
Kajman_
Profil *
Pro případ, že neznáte 'n', ale jen id, tak je ukázka na konci faq.
mikul
Profil
A když řadím podle dvou sloupců, např 'poradi' a pak podle 'nazev'. Chci první vybrat všechny záznamy ze sloupce který mají poradi='1' serazene abecedně, a když jsem na posledním záznamu vybrat první záznam ze sloupce kde poradi='2'.
SELECT id as next FROM table WHERE (poradi>='".$poradi."' and nazev>'".$nazev."') ORDER BY poradi DESC, nazev DESC LIMIT 1")

Tohle samozřejmě nejde, protože vybírá neustále jen vetší pro oba sloupce. Uvádím to jen jako příklad pro lepší pochopení problému. Nevím jestli se obrat směrem k podmínkám v dotazu. Nebo jinam.
Díky...
Kajman_
Profil *
Asi takhle nějak...

where (poradi>'$poradi' or (poradi='$poradi' and (nazev>'$nazev' or (nazev='$nazev' and id>'$id')))) order by poradi, nazev, id limit 1


Id je tam ještě navíc, aby se zaručilo jedinečné pořadí. Kdyby měl někdo poradi a nazev stejné, tak by to přeskakovalo všechny takové.

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