我可以在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);');
但这并没有做任何事情
感谢您的建议! 最好的山姆
答案 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