Jag skulle tänka om databasens design. Om du kommer att begränsas till i storleksordningen 10K-poster så är det inte så illa, men om detta kommer att öka utan begränsningar så vill du göra något annat. Jag är inte säker på vad du gör men om du vill ha en enkel beställning (förutsatt att du inte gör en massa traversering) så kan du ha en prev_id
och next_id
kolumn för att indikera syskonförhållanden. Men här är svaret på dina frågor:
update some_table
set some_position = some_position + 1
where some_position > 5000 and some_position < 10000