SQL - 将属性值设置为同一记录

时间:2017-06-21 13:21:44

标签: mysql sql

我们假设我有这4列:

pid, id, name, placeholder

示例表myTable中的一些示例记录:

pid, id, name, placeholder
1,   1 , hans, -
1,   2 , joe,  -
1,   3 , peter,-

是否可以使用SQL将所有数据从一列复制到另一列?例如。将name的内容复制到列placeholder

预期结果:

pid, id, name, placeholder
1,   1 , hans, hans
1,   2 , joe,  joe
1,   3 , peter,peter

我试过了:

UPDATE myTable
SET placeholder = (SELECT name
                   FROM myTable)
WHERE pid=1;

但我得到Error in query (1093): You can't specify target table 'MyTable' for update in FROM clause

2 个答案:

答案 0 :(得分:3)

只需使用以下查询

UPDATE `table` SET placeholder = name

你也可以在这里使用where条件。

答案 1 :(得分:1)

UPDATE myTable
SET placeholder = name;

修改的 什么&原因:在给定的表中将一个完整列复制到另一个列是一个非常简单的过程。 是的,您可以通过在末尾添加WHERE子句来扩展它,以仅为特定行执行复制。