MySQL更新增加(非自动增量)列值

Jos*_* KG 2 mysql sorting

我有一个包含4列的表,其中一列称为"顺序"."Order"不会自动递增,但是另一列"mapping_id"会自动递增.其他列包括"quiz_id"和"question_id".

表结构的图象

我想将"order"的所有值更改为与question_id字段相同的升序.我的应用程序仅根据此"订单"列进行排序,因此我可以重新排序的唯一方法是编辑此列中的值.

我想知道的是如何编写更新查询以将"order"的所有值更改为以递增的数字序列.我想只是将"order"的值与"question_id"的值匹配,但是question_id从2开始而不是1,而"order"必须从1开始.感谢您提供的任何帮助!

Mar*_*ins 5

像下面这样的东西可能会做你想要的.它将order根据question_id排序分配递增值:

select @ordval := 0;
update thetable set `order` = 
        (select @ordval := @ordval + 1) order by question_id;
Run Code Online (Sandbox Code Playgroud)