0

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

3 回答 3

1

是的,你可以那样做

    UPDATE example SET pos = pos+1  WHERE id = ".$row['id']."
于 2013-08-04T22:49:08.157 回答
1

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

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

"UPDATE example SET pos = ((select max(pos) from example) +1) WHERE id
= ".$row['id']."
于 2013-08-04T23:13:05.307 回答
0

为您的posmysql 字段提供auto_increment属性-这将对其进行索引,使其唯一,并在每次插入时增加 1

于 2013-08-04T22:49:20.767 回答