2015-04-14 33 views
0

當我刪除後刪除它看起來如下表就像一個表中的某些行:如何重新排列表中的列值?

+-----+--------+----------+ 
| ID | Name | Address | 
+-----+--------+----------+ 
| 1 | name1 | address1 | 
| 2 | name2 | address2 | 
| 8 | name8 | address8 | 
| 9 | name9 | address9 | 
+-----+--------+----------+ 

問題是ID沒有正確排序。
我需要它這樣的重新排序:

+----+---------+----------+ 
| ID | Name | Address | 
+----+---------+----------+ 
| 1 | name1 | address1 | 
| 2 | name2 | address2 | 
| 3 | name8 | address8 | 
| 4 | name9 | address9 | 
+-----+--------+----------+ 

是否有一個命令來重新調整列所示一樣?
我使用SQLite

+1

如果ID是自動遞增的,爲什麼你需要改變呢?這就是mysql的工作方式。 –

+0

爲什麼你需要重新編號?不要根據像這樣的id值來構建應用程序。 – jarlh

+0

我需要這樣做,因爲我即時把這個值列表,我刪除行的ID,所以如果ids沒有排序它可以刪除列表中的項目.. – MostafaZ4

回答

0

我覺得這種類型的查詢應該這樣做:

UPDATE yourTable 
SET ID = (SELECT COUNT(*) FROM yourTable ti WHERE ti.ID <= yourTable.ID)