使用mysql_query()更新带有数字序列的表行

时间:2013-07-25 21:02:38

标签: php mysql

我需要将某些行中的字段设置为序列中的数字(0,1,2,...)。通常这应该有效:

SET @counter:=-1;
UPDATE nodes SET sort=@counter:=@counter+1 WHERE parent_id=2

但是无法使用mysql_query()进行多次查询。有没有办法在单个查询中完成此操作,还是应该在循环中运行多个查询?

1 个答案:

答案 0 :(得分:2)

尝试加入:

UPDATE nodes cross join (select @counter := -1) const
    SET sort = (@counter:=@counter + 1)
    WHERE parent_id = 2;