tleeMedlem sedan mars 2001293 inlägg hej, jag har ett antal artiklar som har ett positionsfält för sortering.
1 bil
2 båt
3 hund
4 katt
5 fågel
jag vill kunna lägga in artikel på t.ex position 3, då skall de efterföljande
posternas position ökas med +1
1 bil
2 båt
3 dator
4 hund
5 katt
6 fågel
hur löser man detta smidigast?
LarsGMedlem sedan dec. 200012 465 inlägg Gör en update innan du gör insert
update t set pos = pos + 1 where pos >= 3
Peter SMedlem sedan dec. 20025 484 inlägg Du borde väl kunna göra så här:
update tabell t
set t.pos = t.pos + 1
where t.pos >= 3
insert
into tabell (pos, descr)
values (3, 'dator')
Sedan är det bara att sortera på pos när du hämtar informationen:
order by pos
Red./ LarsG hann visst före ;)
tleeMedlem sedan mars 2001293 inlägg nu vid DELETE
tackar, det funkar förträffligt.
låt säga jag tar bort en artikel, hur blir sql:en då? om jag skickar med positionsnummret på den artikel som skall plockas bort.
/t
LarsGMedlem sedan dec. 200012 465 inlägg Vid delete så behöver du inte göra något mer än delete.
tleeMedlem sedan mars 2001293 inlägg om jag har fyra artiklar med pos 1,2,3,4 och tar bort nummer tre kommer dom resterande ha 1,2,4 ... sorteringen kommer visserligen funka så det kanske inte spelar någon roll..
låt säga jag gör en UPDATE och byter position på en artikel, hur löser man det på ett smidigt sätt.