php - 使用 mysql_query() 使用数字序列更新表行

标签 php mysql

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

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

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

最佳答案

尝试进行连接:

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

关于php - 使用 mysql_query() 使用数字序列更新表行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17868680/

相关文章:

PhpUnit 模拟 : function undefined

php - CodeIgniter 中的方法 Post 和 Get

php - Symfony Controller 中的 Doctrine 问题

php - 通过 SQL 注入(inject)从数据库中提取信息

php - 如何使用 PHP 和 PDO 获取整数和文本以自动换行

PHP:如何从 String 中删除最后一个词?

SQL查询语句中的PHP空格错误

mysql - 通过 Json 链接将数据插入 WordPress 博客

mysql - 有没有办法强制至少一列不为空

php - 提交搜索表单后未收到来自数据库的查询结果