2011-02-09 1 views
0

позволяет сказать, что у меня есть в таблице с именем threadlocобновления таблицы в базе данных Mysql

id thread 
4 1 
3 2 
2 3 
1 4 

за стол

Я хочу, чтобы изменить значение таблицы нити так, что я могу выбрать любую тему и (id 1) и проталкивать все остальные нити вверх.

так, как я выбрать 2 было бы

id thread 
4 1 
3 3 
2 4 
1 2 
+0

Нужна более подробная информация по логике позади этого. anythread выше 2 должен быть увеличен на 1 справа? –

ответ

0
UPDATE threadloc SET ID = ID + 1 WHERE thread <> @currentThread AND ID < @currentID; 
UPDATE threadloc SET ID = 1 WHERE thread = @currentThread 

редактировать: теперь это не меняет более высокие идентификаторы

+0

Это тоже изменит поток 1, который не ожидается в данном выходе. –

+0

hm yeah, вы не получаете идентификаторы от 1 до 4, но если вы просто хотите иметь правильный порядок, все должно быть в порядке. в противном случае вам нужно добавить второе предложение where и предотвратить изменение более высоких идентификаторов – Fender