Autor | Zpráva | ||
---|---|---|---|
H13 Profil |
#1 · Zasláno: 6. 10. 2010, 13:17:53
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 |
#3 · Zasláno: 6. 10. 2010, 16:40:44 · Upravil/a: H13
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. |
||
Časová prodleva: 14 let
|
0