使用同一表中多个其他列的组合结果更新列

时间:2014-01-31 17:53:35

标签: mysql

我正在尝试将SELECT的结果组合到同一个表中的单个列中(从单个列移动到在JSON对象中存储多个字段)。我的SELECT查询工作正常,但当我尝试将它与UPDATE结合时,我得到:

  

您无法在FROM子句

中为更新指定目标表'app_config'

我不确定我做错了什么(我在SQL上的表现不是很好),所以任何帮助都会受到赞赏。

组合SQL:

UPDATE app_config
SET sms_config = ( 
    SELECT CONCAT( '{"user_name":"', app_id, '","user_id":', sms_user_id, ',"user_auth":"', sms_user_auth, '"}' ) 
    FROM app_config
    WHERE sms_user_id IS NOT NULL AND sms_user_id > 0 
)

1 个答案:

答案 0 :(得分:0)

我认为这就是你想要的。

UPDATE app_config
SET sms_config = CONCAT( '{"user_name":"', app_id, '","user_id":'
                      , sms_user_id,  ',"user_auth":"', sms_user_auth, '"}')
WHERE sms_user_id > 0