0

同じテーブルの別の行に格納されている値からいくつかの 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 句で更新対象のテーブル 'users' を指定することはできません

これを達成する方法はありますか?

4

2 に答える 2

3

これは、次のように join で更新することで実現できます。

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);

このSQLFiddleを参照してください

于 2013-06-04T09:08:07.343 に答える
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
于 2013-06-04T09:03:40.013 に答える