2014-02-13 64 views
1

嗨我有一個名爲UID的列,該列的當前數據是像下面SQL從1遞增特定列到N

uid 
--- 
0 
0 
0 
0 
0 
0 
0 
0 
0 

我想從1填補值N.因此,例如,下面

uid 
--- 
1 
2 
3 
4 
5 
6 
7 
8 
9 
. 
. 
n 

如何循環遍歷所有行和增量值。

+0

它是主鍵嗎?如果是的話,只是使它自動增量在phpmaydmin – Dexture

+0

'改變表table_name修改列uid int(4)auto_increment' –

+0

我試過了,我得到重複條目'0'的關鍵'主' – user3305305

回答

0

如果是PRIMARY KEY和INT!則只能將列定義爲AUTO_INCREMENT。 既然你想要的UID被設置爲AUTO_INCREMENT,爲什麼不把它作爲PRIMARY KEY

CREATE TABLE TableName 
(
    UID INT AUTO_INCREMENT PRIMARY KEY, 
    -- other columns... 
) 
+0

問題是我無法使它的主要 – user3305305

+0

嘗試此''ALTER TABLE' 'TableName'' MODIFY COLUMN'' uid'' INTEGER UNSIGNED NOT NULL AUTO_INCREMENT;''' ' –

+0

ALTER TABLE表 ADD PRIMARY KEY(UID)AUTOINCREMENT;' –

0
$n = 50; //number of your records suppose it was 50 
for($i=1; $i<=$n; $i++) 
{ 
    $res = mysql_query("select * from `table name` where `UID`=0 LIMIT 1 "); 
    if($row = mysql_fetch_assoc($res)) 
    { 

     mysql_query("update `table name` set `UID`='$i' where UID=0 limit 1 ") or die(mysql_error) 

    } 
} 
+0

不能我們沒有PHP? – user3305305

+0

沒有文件,並運行它在服務器上 – wild

+0

無法使其主要bcoz主鍵值必須是唯一的,並在所有行中的uid值爲0,首先改變它後,你能夠使這個字段的主鍵 – wild

0

可以以簡單的方式這樣做只是爲了顯示順序排如下:

SET @rank=0; 
select @rank:[email protected]+1 AS rank from Table1; 

否則,這樣做與PHP

編輯

嘗試做一些像日是:

ALTER TABLE Table1 MODIFY COLUMN `id` int(4) Primary key NOT NULL AUTO_INCREMENT; 
+0

我應該重新命名爲AS排名從AS到uid從? – user3305305

+0

嘿querry是成功的,但它不反映在主表? – user3305305

+0

@ user3305305是的,你會得到相同的結果。 – 7alhashmi