2014-11-21 3 views
0

Мне хотелось бы получить значения в столбце длительности из main_table, подстроить 1 (один) из каждого значения в столбце, а затем обновить тот же столбец с разницей (результат после подделки) напримерОбновить тот же столбец таблицы со значением после его вычитания

main_table (before any operation) 
-------------------------------- 
id  duration 
1  x 
2  y 
3  z 

main_table (after update operation) 
-------------------------------- 
id  duration 
1  x - 1 
2  y - 1 
3  z - 1 

вот что я пытался до сих пор и не

UPDATE main_table mt, (SELECT duration - 1 AS remaining 
       FROM main_table mt1 
       ) mt1 
SET mt.duration = mt1.remaining 
WHERE mt.id = mt1.id 

Предложение ребят для достижения этой цели!

ответ

1

Вам не нужно подзапрос для этого, это может быть сделано с одного обновления заявления

update main_table 
set 
duration = duration - 1 
1

Вы можете непосредственно использовать колонку, как это, это будет обновлять значение столбца, как вам требуется. Проверьте, может вам помочь.

UPDATE main_table mt 
SET mt.duration = mt.duration -1 
Смежные вопросы