gpt4 book ai didi

php - 使用单个查询更新时自动增量 MySQL 列字段

转载 作者:行者123 更新时间:2023-11-29 13:56:27 26 4
gpt4 key购买 nike

假设我有这段代码:

$ids = execute_query("SELECT id FROM table WHERE field = 'value' ORDER BY order_field");
$query = "UPDATE table SET increment = CASE";
for ($i = 0; $i <= sizeof($ids); $i++) {
$query .= " WHEN id = " . $ids[$i] . " THEN " . $i;
}
$query .= " END WHERE field = 'value'";

然后我执行该查询。

有没有一种方法可以将 SELECTUPDATE 合并到一个查询中,从而有效地实现完全相同的操作?

最佳答案

在子选择同一表的同时更新表是不可能的:http://dev.mysql.com/doc/refman/5.6/en/update.html “目前,您无法更新表并在子查询中从同一个表中进行选择。”

我没有在这里运行这个,但据我了解,这就是你想要的:

SET @ordering = 0;

UPDATE
table SET increment = (@ordering := @ordering + 1)
WHERE
field = 'value'
ORDER BY
order_field;

只要不重新连接到数据库,您就可以在单独的查询中执行SETUPDATE

关于php - 使用单个查询更新时自动增量 MySQL 列字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15791838/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com