Autor | Zpráva | ||
---|---|---|---|
mz3n Profil * |
#1 · Zasláno: 16. 8. 2007, 14:44:48
Dobrý den, mám tabulku se seznamem odkazů (na struktuře teď nezáleží). Jedním sloupcem v tabulce je sloupec "position", v tomto sloupci se ukládá informace, na jaké pozici daný záznam je. Každý záznam má jinou pozici (čísla pozic na sebe navazují, tj. nikde neni mezera). Ted není možné, aby jeden záznam měl pozici 1 a další 3 místo 2. Nějakým způsobem pozice přehazuji. Nevím ale jak provést mazání záznamu tak, aby se všechny záznamy s vyšším číslem pozice přečíslovali o 1.
|
||
Alphard Profil |
#2 · Zasláno: 16. 8. 2007, 14:50:21 · Upravil/a: Alphard
asi bude nutný následný update
např. když smažeš odkaz na pozici 7, tak následně u všech odkazů s pozicí nad 7 updatuješ pozice - 1 edit: jestli to chceš řešit na straně databáze, tak by možná by šly využít uložené procedury nebo triggery, nevím, moc se v tom nevyznám |
||
Kajman_ Profil * |
#3 · Zasláno: 16. 8. 2007, 16:18:55
Osobně bych nechal data s mezerami. Těžko to bude něčemu vadit.
Přímo při mazání to můžete udělat podle Alpharda, ale když tam je víc mezer, tak se to dá sesypat snad takhle nějak set @radek=0; update odkazy set position=@radek:=@radek+1 order by position; |
||
mz3n Profil * |
#4 · Zasláno: 16. 8. 2007, 23:15:03
Mne mezery vadí, protože když přehazuju položky tak se přehazují pozice
|
||
Kajman_ Profil * |
#5 · Zasláno: 16. 8. 2007, 23:27:07
To jde i s mezarami. Stačí použít update s order a limitem.
|
||
Časová prodleva: 17 let
|
0