Autor Zpráva
H13
Profil
Ahoj,

zajímalo by mě, zda se dá nějak jednoduše získat z databáze položka plus její dvě sousedící položky (jedna z nich je předcházející a druhá následující). Například pro vytovření odkazů - "Předchozí" - "Následující"

Pokud se položky řadí podle pořadí a každá položka má své pořadové číslo, pak pomocí např. ID zjistím hlavní položku, pak vyberu položku, jejíchž pořadové číslo je menší ale nejblíže hlavní položce a pak položku, jejíchž pořadové číslo je větší a nejblíže hlavní položce.

Co ale v případě, kdy se řadí podle jiných kritérií - např. podle jména (ASC, DESC) nebo dokonce podle kritéria, které je uložené v jiné tabulce?

Neexistuje na to nějaký příkaz v SQL, něco jako:

SELECT id, jmeno FROM tabulka WHERE id = 10 ORDER BY title LIMIT -1, 3

Získané by byly tři položky -1 by byla předchozí, 0 hlavní, 1 následující - je to samozřejmě nesmysl, prože je tam id = konkrétní položky a -1 u limitu asi také neexistuje.

Pokud má někdo z vás nápad (nebo spíš znalosti) jak to řešit, byl bych za něj rád.

Předem díky.
Kajman_
Profil *
Do faq jste koukal?
H13
Profil
Ahoj, díky za link (nekoukal jsem na něj), ale nevím jestli řeší můj problém:

např. podle jména (ASC, DESC)

zadání jména (např. typ VARCHAR) místo sloupecek mi nějak nefunguje :-(

a) buď to zadávám nějak špatně
b) nebo sql neumí řadit např. typ VARCHAR pomocí < >

Pokud b) pak by mě zajímalo, jak toto vyřešit

Děkuji

EDIT:
a) je správně ... už mit to jede jak má, ještě jednou děkuji.

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