gpt4 book ai didi

php - 有没有办法更新行以添加批处理 ID 并返回该 ID?

转载 作者:行者123 更新时间:2023-11-29 17:19:45 26 4
gpt4 key购买 nike

我想从 MySQL 表中检索多行,并记住稍后检索了哪些行。 (我将这些发送到 API,我需要跟踪它们是否被接受)。

我想要实现此目的的方法是使用 UPDATE 查询来为 100 条左右的记录创建 batch_id。我还想返回 batch_id

这是我到目前为止所想到的(完整的 PHP 函数):

function get_batch() {
global $DB;
$q = $DB->prepare("UPDATE my_table
SET batch_id = LAST_INSERT_ID(MIN(id))
WHERE batch_id = ''
LIMIT 100");
$q->execute();
return $DB->lastInsertId();
}

这是对组函数的无效使用(因为我可能无法在更新各个行的同时在所有行上使用 MIN )。

我可以使用子查询来查找最低的 ID,但我想知道是否有更好的方法来做到这一点?

我也不确定在此上下文中我对 LAST_INSERT_ID 的使用是否正确(将其设置为稍后检索)?

最佳答案

您可以执行两个查询,一个用于获取要更新的行,另一个用于更新它们。

SELECT * FROM my_table WHERE batch_id='' ORDER BY id ASC LIMIT 100

然后你可以做一些类似 for 循环的事情,你可以用...单独执行每个循环

UPDATE my_table SET batch_id='value' WHERE id = $i

或者,如果行的 id 将位于一个没有间隙的 block 中,您可以执行类似的操作...

UPDATE my_table SET batch_id='value' WHERE id >= $min_value_id AND id <= $max_value_id

参见,this question .

关于php - 有没有办法更新行以添加批处理 ID 并返回该 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51323299/

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