UPDATE some_table set rank=1 WHERE id=25
UPDATE some_table set rank=2 WHERE id=15
UPDATE some_table set rank=3 WHERE id=10
UPDATE some_table set rank=4 WHERE id=12
UPDATE some_table set rank=5 WHERE id=13
UPDATE some_table set rank=6 WHERE id=14
UPDATE some_table set rank=7 WHERE id=11

我怎么能因为想不出一个查询而把它变成一个查询呢?id的这些值是按顺序排列的。想象一个有图片的图片库,用户可以选择重新排列这些图片的顺序。后端将根据用户定义的序列分配列组,并将在ORDERBY子句中使用。

最佳答案

update some_table
set rank = case
    when id = 25 then 1
    when id = 15 then 2
    when id = 10 then 3
    when id = 12 then 4
    when id = 13 then 5
    when id = 14 then 6
    when id = 11 then 7
end

关于mysql - 将多个重复的MySQL查询变成一个?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11295363/

10-11 03:10
查看更多