2017-06-24 53 views
6

Projemde veritabanında birçok değişiklik yaptım ve bir keresinde veritabanımdaki bir tabloya yeniden sipariş vermem gerekiyor. yani, istiyorum. Aşağıdaki masam var.Mysql içinde alan sırasını dinamik olarak değiştirme

id  name  address  order 
1  vijay mumbai  2 
3  ram  delhi  4 
4  ravi  pune  5 
5  rutul surat  8 
9  vipul agra  11 

Ve MySQL sorgudan güncelleştirmek istiyor ... gibi

istediğim Yani
id  name  address  order 
1  vijay mumbai  0 
3  ram  delhi  1 
4  ravi  pune  2 
5  rutul surat  3 
9  vipul agra  4 

artı bir ve üzerinde ve ... Nasıl 0'dan güncellemek için siparişim alandır Bunu yapmak için hiçbir fikrim yok ... Deniyorum ama ben de çözüme yakın değilim. Bu nasıl yapılır? Lütfen bana yardım et.

+0

Eğer 'kullanarak Tabii satır numarasını –

cevap

4

Aşağıdaki sorguyu kullanabilirsiniz:

SET @orderid = -1;  
update yourTableName set `order` = (@orderid:[email protected]+1) 
order by id asc 

DÜZENLEME: aşağıdaki gibi yapabilirsiniz CodeIgniter'daki

:

$this->db->query("SET @orderid = -1"); 
$this->db->query("update table_name set `order` = (@orderid:[email protected]+1) order by id asc"); 
+0

kullanmayı deneyebilirsiniz Bir sorguda order 'mysql öksürük yapacak :-)' \ 'order \' 'kullanarak daha iyi olurdu .... –

+0

Yup, Ayrıca c önlemek için tavsiye olmysql * olumn ismi ** varsayılan anahtar kelimeler –

+0

Yup, çalışıyor ... codeigniter işlevi üzerinde nasıl uygulanacağı konusunda herhangi bir fikriniz var mı? –