我有一个包含4列的表,其中一列称为"顺序"."Order"不会自动递增,但是另一列"mapping_id"会自动递增.其他列包括"quiz_id"和"question_id".
我想将"order"的所有值更改为与question_id字段相同的升序.我的应用程序仅根据此"订单"列进行排序,因此我可以重新排序的唯一方法是编辑此列中的值.
我想知道的是如何编写更新查询以将"order"的所有值更改为以递增的数字序列.我想只是将"order"的值与"question_id"的值匹配,但是question_id从2开始而不是1,而"order"必须从1开始.感谢您提供的任何帮助!
像下面这样的东西可能会做你想要的.它将order
根据question_id
排序分配递增值:
select @ordval := 0;
update thetable set `order` =
(select @ordval := @ordval + 1) order by question_id;
Run Code Online (Sandbox Code Playgroud)