需要在同一个表中将数据从一个字段移动到另一个字段

时间:2011-09-15 17:54:19

标签: mysql

我想将所有数据从field_id_41移动到field_id_380,其中weblog_id = 191

这两个字段属于同一个表:exp_weblog_data

我不想在没有问这里的情况下运行任何东西,我开始把它放在一起:

UPDATE 
  exp_weblog_data 
SET 
  field_id_380 = (SELECT field_id_41 FROM exp_weblog_data 
  WHERE (field_id_41 != '' and weblog_id = 191)) 
WHERE 
  weblog_id = 191

3 个答案:

答案 0 :(得分:13)

真的不需要子查询。您可以在同一行中获取另一列的值,并将其设置在第一列中:

UPDATE 
  exp_weblog_data 
SET 
  field_id_380 =field_id_41 
WHERE 
  weblog_id = 191
AND 
  field_id_41 != ''

答案 1 :(得分:5)

也许是这样的:

UPDATE 
  exp_weblog_data 
SET 
  field_id_380 =field_id_41,   field_id_41 = ''
WHERE 
  weblog_id = 191
AND 
  field_id_41 != ''

答案 2 :(得分:0)

如果我是你,我会做的是备份该数据库并将其托管在另一台(或同一台)服务器上。一旦你完成了这一切,你就可以随心所欲地进行实验,而不必担心失去任何实际数据。不过,那个查询对我来说很好。