Autor | Zpráva | ||
---|---|---|---|
mikul Profil |
#1 · Zasláno: 16. 3. 2009, 23:21:28
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 |
#2 · Zasláno: 16. 3. 2009, 23:38:48 · Upravil/a: Alphard
mělo by to fungovat stejně, jen pozor na apostrofy
where retezec > 'n' |
||
Kajman_ Profil * |
#3 · Zasláno: 17. 3. 2009, 08:59:05
Pro případ, že neznáte 'n', ale jen id, tak je ukázka na konci faq.
|
||
mikul Profil |
#4 · Zasláno: 17. 3. 2009, 15:58:59
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é. |
||
Časová prodleva: 15 let
|
0