我想按特定顺序更新以下查询中的 field1。就像从较小的数字开始更新到最大的数字一样。 (简化名称)
UPDATE table t1, (SELECT @temp := 0) a, (SELECT @temp_2 := 0) b
SET field1 = (CASE
WHEN id = X THEN (@temp := @temp+1)
WHEN id = Y THEN (@temp_2 := @temp_2+1)
END)
WHERE ( id = X OR id = Y )
ORDER BY field1 ASC;
我尝试使用 ORDER BY 但出现错误 Incorrect usage of UPDATE and ORDER BY
。
我明白这些, (SELECT @temp := 0) a, (SELECT @temp_2 := 0) b
创建问题,但我想避免使用单独的查询来设置它们。
最佳答案
关于mysql - ORDER BY 和 UPDATE 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48215461/