2013-05-24 4 views
1

У меня есть таблица t1.Обновить столбец из той же колонки таблицы

table t1 

id post_id tags 
1  null a 
2  1  null 
3  1  null 
4  null b 

Я хочу обновить теги, где post_id = id. Я попробовал запрос, который дает мне нулевой вывод.

post_id всегда нуль, когда теги существует и теги всегда нуль, когда post_id существует

update t1 set tags = tags where post_id = id; 

Может у ребят обрамляют это правильно для меня. Пожалуйста, помогите мне

+0

Его лучше, если я не нужно будет создать временную таблицу, чтобы получить этот –

+0

'набор тегов = tags' этот запрос будет ничего не обновлять, даже если он работает –

+0

Зачем вам нужно обновлять теги с одинаковыми значениями тегов? – 0xAli

ответ

2

update t1 a join t1 b on a.id = b.post_id set b.tag = a.tag

+0

Чем он отличается от реального? обновление значения с самим собой ничего не меняет –

+0

Я считаю, что OP хочет взять тег, где id = 1, и установить тег равным этому значению, где все post_id = 1, так далее и т. д. Я мог бы иметь a и b назад, хотя. –

+0

Спасибо, господин меланхолик. Это может помочь мне изменить другие вещи. –

0
update t1 set tags = tags where post_id = id; 

Здесь запись не будет обновляться, так как tags = tags .Вы обновляют столбец с этим значением столбца.

+0

PSR, Hanky. Как я могу это получить. –

+0

Какое значение вы хотите сохранить в поле тегов для этого запроса? –

+0

что вам нужно, чтобы получить – PSR

0
update t1 set tags = tags where post_id = id; 

Это означает, что набор A = A, 1 = 1, B = B, устанавливает что-то себе. Это ничего не обновит. Вы должны предоставить другое значение для обновления, что, например

update t1 set tags = "Testing 123" where post_id = id; 
Смежные вопросы