Py学习  »  DATABASE

mysql update table set column等于从同一个表中选择列

multimediaxp • 5 年前 • 1676 次点击  

我的数据库中有一个新列,我需要用一个特定行中同一列的值填充它。我想创建一个功能“复制到所有人”

例如,将相同的价格添加到从第一行获取的所有产品:

ID   NAME   PRICE
1    PROD1    5
2    PROD2    0
3    PROD3    0
4    PROD4    0

我试图选择第一行(id 1)的价格并将其复制到所有其他行。

我试过:

UPDATE PRODUCTS SET PRICE = (select PRICE from PRODUCTS where ID = 1);

我想以这个结束

ID   NAME   PRICE
1    PROD1    5
2    PROD2    5
3    PROD3    5
4    PROD4    5

但我有个错误:

 Table 'PRODUCTS' is specified twice, 
 both as a target for 'UPDATE' and as a separate source for data

我试着分别指定每个表

UPDATE PRODUCTS as a SET a.PRICE = (select b.PRICE from PRODUCTS as b where b.ID = 1);

但我也犯了同样的错误。

 Table 'a' is specified twice, 
 both as a target for 'UPDATE' and as a separate source for data

也许我需要创建一个临时表并从中复制? 有什么关于如何做到这一点的提示吗? 谢谢。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/47977
 
1676 次点击  
文章 [ 4 ]  |  最新文章 5 年前