如何在PHP中设置id列

时间:2014-04-21 11:02:04

标签: php mysql

我可以在phpmyadmin中使用这个sql代码在我的表中设置一个id列:

SET @i = 0;
UPDATE albums SET id=(@i:=@i+1);

这将给id列中的每一行一个连续的数字。 它可能是我非常基本的,但如何在PHP中运行此代码?

我试过了:

mysql_query('SET @i = 0;
UPDATE albums SET id=(@i:=@i+1);');

但这并没有做任何事情

感谢您的建议! 最好的山姆

3 个答案:

答案 0 :(得分:2)

mysql_query()会发送一个唯一的查询(不支持多个查询),因此您的代码无效。您可以使用不同的mysql_query()进行尝试。

mysql_query('SET @i = 0');
mysql_query('UPDATE albums SET id=(@i:=@i+1)');

答案 1 :(得分:1)

由于在PHP 5.5.0中不推荐使用mysql_query()而mysqli_query()不支持多个查询,因此最好的答案是:

mysqli_multi_query('set @i = 0; update albums set id = (@i:=@i+1);');

答案 2 :(得分:0)

如何将单个更新查询与join

一起使用
mysql_query("update albums 
join(SELECT @i:=0) t
SET id=(@i:=@i+1)");

但是,如果您可以更改表格的模式,那么它会更好,然后生成ID AUTO_INCREMENT

demo for update join query