【问题标题】:Copy column from table to another in MySQL将列从表复制到MySQL中的另一个
【发布时间】:2011-09-13 13:23:50
【问题描述】:

我正在尝试将包含数据的列从表中复制到 MySQL 中的另一个。但我无法绕过它。两个表都有一个名为“nid”的 id 列,非常适合。

我想将名为“field_pref_position_value”的列从表“content_field_pref_position”移动到表“content_type_player”中的“pref_position”列。我已经创建了“pref_position”列。

非常感谢任何帮助。

编辑:我犯了一个大错误。我将该列复制到表“content_type_player”而不是应该的“content_type_transfer”,但现在当我尝试对 content_type_transfer 使用相同的查询时,它只返回 '0 行受影响。 (查询耗时 0.0015 秒)' 不更新列。不知道交易是什么?

我正在使用这个查询:

UPDATE content_type_transfer 
JOIN content_field_pref_position 
    ON content_field_pref_position.nid = content_type_transfer.nid 
SET content_type_transfer.pref_position 
    = content_field_pref_position.field_pref_position_value

【问题讨论】:

  • 为什么加入?尝试将其替换为 WHERE content_type_player.nid = content_field_pref_position.nid
  • 我解决了。使用此查询: UPDATE content_type_player JOIN content_field_pref_position ON content_field_pref_position.nid = content_type_player.nid SET content_type_player.pref_position = content_field_pref_position.field_pref_position_value

标签: mysql sql copy sql-update


【解决方案1】:

我认为您刚刚为同一个表命名了两次:

UPDATE 
 content_type_player 
SET 
 content_type_player.pref_position = content_field_pref_position.field_pref_position_value 
FROM 
 content_field_**player**
JOIN 
 content_field_pref_position ON content_type_player.nid = content_field_pref_position.nid 

【讨论】:

  • 我做到了,当我第一次更新错误的表格时它就起作用了,我在上面编辑了我的问题。你知道它为什么会这样吗?谢谢!
【解决方案2】:

正如@heximal 所建议的

UPDATE
 content_type_player
SET
  b.pref_position = a.field_pref_position_value
FROM
 content_field_pref_position a
 content_type_player b 
WHERE
 a.nid = b.nid

【讨论】:

    【解决方案3】:

    正如尼尔萨诺所建议的那样

    UPDATE content_type_player JOIN content_field_pref_position ON content_field_pref_position.nid = content_type_player.nid SET content_type_player.pref_position = content_field_pref_position.field_pref_position_value
    

    【讨论】:

      猜你喜欢
      • 2012-08-12
      • 1970-01-01
      • 1970-01-01
      • 2014-07-03
      • 2015-05-17
      • 1970-01-01
      • 2011-11-21
      • 2021-12-12
      • 1970-01-01
      相关资源
      最近更新 更多