2017-06-21 88 views
0

假设我有这4列:SQL - 设置属性值在同一个记录另一个属性的值

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

+3

您不需要子查询就可以使用相同*记录的另一个字段*的值设置一个字段。只需使用:'UPDATE myTable SET placeholder = name WHERE pid = 1;' –

+0

两次存储相同的信息是一个好主意吗? – Jens

+0

@Jens,不,这只是一个例子。 – Black

回答

3

下面的查询只需使用

UPDATE `table` SET placeholder = name 

您还可以我们e在这里的条件。

+0

omg大声笑,我觉得我很累... thx! – Black

1
UPDATE myTable 
SET placeholder = name; 

编辑 什么&为什么:这是一个非常简单的过程,以一个整列复制到另一个在给定的表。 是的,你可以通过在最后添加一个WHERE子句来扩展它,只对特定行执行复制。

+0

不仅在你的回答中添加代码。添加解释内容和原因 – Jens

相关问题