插入新列,递增所有行

时间:2013-08-04 22:47:30

标签: mysql

这是否只能使用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']." );
}

3 个答案:

答案 0 :(得分:1)

是的,你可以这样做

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

答案 1 :(得分:1)

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

或者,如果您的用例不允许,请尝试类似:

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

答案 2 :(得分:0)

pos mysql字段提供auto_increment属性 - 这将对其进行索引,使其唯一,并在每次插入时递增1