MYSQL - 在同一个表中将一列复制到另一列 - 具有条件

时间:2015-10-18 00:07:34

标签: mysql

我有问题。

我想将值从“guid”列复制到“post content”

所有行都在一个表“wp-posts”

“post parent”列中的一行有一个值,另一项在“ID”列中具有相同的值

我必须做的是

  1. 将项目ID与post_parent进行比较,然后

  2. 将具有“post parent”值的列“guid”中的数据(也不是从那里删除)复制到具有相同ID的“post_content”(将数据添加到顶部的现有数据中(不删除还)

  3. 结构表wp_post

      

    ID ||||| post_parent | guid ||||||||||||||||||| post_content |

         

    123 |||| 0 ||||||||||||||||||||||||||一些数据||||||||||||||一些内容

         

    5433 | 123 |||||||||||||||||||||数据复制|一些内容

    我希望得到这个:

      

    ID |||||| post_parent | guid ||||||||||||||||||| post_content |

         

    123 |||||| 0 ||||||||||||||||||||||||||一些数据||||||||||||| 数据复制一些内容

         

    5433 ||| 123 ||||||||||||||||||||数据复制|一些内容

    mysqlnd 5.0.8 请帮我, 谢谢你的支持

1 个答案:

答案 0 :(得分:0)

如果我正确理解了要求,您需要将父级加入同一个表中的子级(wp_postswp_posts)。然后你会使用这样的东西:

UPDATE wp_posts parent
    JOIN wp_posts child
    ON parent.id = child.post_parent 
SET parent.post_content = concat(child.guid, parent.post_content)

请注意,就其性质而言,这只适用于单个孩子。如果你有一个以上的孩子为一个给定的帖子它将只采取第一个孩子,但我不知道这种行为是指定的,可能不是你想要依赖的东西。