写真の回転オフセットを更新する SQL クエリがあります。値が 3 でない限り、クエリは値に 1 を追加する必要があります。値が 3 の場合は、0 に戻す必要があります (90 度の回転が 4 回ある場合は、まったく回転しない場合と同じです)。
以下が最も効率的な方法であるかどうかはわかりません。私が持っているようにマッピングをリストする必要のない、より簡単な解決策の提案をいただければ幸いです。
しかし、私の質問は、MySQL 構文エラーが発生するのはなぜですか? SELECT サブクエリを単独で使用すると、期待どおりの結果が返されます。
UPDATE `photos` p SET p.rotational_offset=map.new_value INNER JOIN (
SELECT 0 AS rotational_offset, 3 AS new_value
UNION SELECT 1 , 0
UNION SELECT 2 , 1
UNION SELECT 3 , 2
) map ON p.rotational_offset=map.rotational_offset WHERE p.photo_id="22";