更新MySQL Blob字段

时间:2013-06-04 08:59:23

标签: mysql sql sql-update blobs

我正在尝试从存储在同一个表中另一行中的值更新多个BLOB字段:

UPDATE users SET user_permissions = (
                                     SELECT user_permissions 
                                       FROM users 
                                       WHERE user_id=1
                                    ) 
WHERE user_id IN (3,4,5)

但是这失败了,出现以下错误:

  

[Err] 1093 - 您无法在FROM中指定要更新的目标表“用户”   条款

有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:2)

我认为您可以使用UPDATE

INNER JOIN查询来实现此目的
UPDATE users a
LEFT JOIN users b
ON a.user_id = b.user_id 
SET a.user_permission = b.user_permission
WHERE a.user_id IN (3,4,5)
AND b.user_id = 1

答案 1 :(得分:2)

您可以通过使用以下连接进行更新来实现此目的:

UPDATE users u1
  JOIN users u2
    ON u2.user_id = 1
   SET    u1.user_permissions = u2.user_permissions
 WHERE  u1.user_id IN (3,4,5);

请参阅this SQLFiddle