使用同一个表中的Select语句进行MySQL更新

时间:2014-08-11 09:45:44

标签: mysql sql sql-update

我有一个名为time_table的表,其中包含以下列

--------------------------
 time_table
--------------------------
col_name | type
id       | int
user_time| datetime

此表中有记录。当我将表更新为:

--------------------------
 time_table
--------------------------
col_name | type
id       | int
user_time| datetime
utc_time | datetime

我想选择所有user_time列,获取其UTC等效值并在一个查询中更新utc_time列。

我尝试了这个查询,但它没有用。

UPDATE time_table p1, ( 
SELECT id, CONVERT_TZ(user_time,'+00:00','+05:00') AS newtime
FROM time_table sp WHERE sp.id=p1.id) AS p2
SET p1.utc_time = p2.newtime
WHERE p1.id = p2.id

我知道我的查询有问题,但我不知道它有什么问题。有什么建议?这将是一个很大的帮助。

1 个答案:

答案 0 :(得分:2)

您无需加入

UPDATE time_table 
SET utc_time = CONVERT_TZ(user_time, '+00:00','+05:00')