我有一个 SQL 查询来更新照片的旋转偏移量。查询应将值加 1,除非值为 3,在这种情况下,应将其设置回 0(如,4 批 90 度旋转与完全不旋转相同)。
我不确定下面的内容是否是最有效的方法,我会很感激提供更简单的解决方案的建议,这些解决方案不需要我像我一样列出映射。
但是,我的问题是,为什么会出现 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";