在mysql中动态更改字段顺序

Div*_*iya 6 php mysql database

在我的项目中,我在数据库中进行了很多更改,有时我需要将命令重新分配给数据库中的某个表.所以,我想要的是.我有下表.

id     name     address     order
1      vijay    mumbai      2
3      ram      delhi       4
4      ravi     pune        5
5      rutul    surat       8
9      vipul    agra        11
Run Code Online (Sandbox Code Playgroud)

我想从mysql查询更新它...就像

id     name     address     order
1      vijay    mumbai      0
3      ram      delhi       1
4      ravi     pune        2
5      rutul    surat       3
9      vipul    agra        4
Run Code Online (Sandbox Code Playgroud)

所以我想要的是我的订单字段从0更新到加一个等等......如何做到这一点我不知道......我尝试但我也没有接近解决方案.怎么做?请帮我.

B. *_*sai 4

您可以使用以下查询:

SET @orderid = -1;    
update yourTableName set `order` = (@orderid:=@orderid+1)
order by id asc
Run Code Online (Sandbox Code Playgroud)

编辑:

在 codeIgniter 中,您可以执行以下操作:

$this->db->query("SET @orderid = -1");
$this->db->query("update table_name set `order` = (@orderid:=@orderid+1) order by id asc");
Run Code Online (Sandbox Code Playgroud)