簡體   English   中英

插入新列,遞增所有行

[英]Insert new column, increment all rows

這可能只使用mysql:

插入一個新列和示例 - “pos”。 表中的每一行都必須具有獨特的,“pos”的值,如1,2,3,4,5。

在php中這將是一件容易的事:

$query = "SELECT * FROM example"; 

$result = mysql_query($query) or die(mysql_error());

$counter = 0;
while($row = mysql_fetch_array($result)){
    mysql_query( "UPDATE example SET pos = ".++$counter." WHERE id = ".$row['id']." );
}

是的,你可以這樣做

    UPDATE example SET pos = pos+1  WHERE id = ".$row['id']."

如前所述,最有效的解決方案是在pos上使用自動增量。

或者,如果您的用例不允許,請嘗試類似:

"UPDATE example SET pos = ((select max(pos) from example) +1) WHERE id
= ".$row['id']."

為你的pos mysql字段提供auto_increment屬性 - 這將對其進行索引,使其唯一,並在每個插入上遞增1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM