gpt4 book ai didi

php - 更新 Select 查询循环所基于的字段

转载 作者:行者123 更新时间:2023-11-29 09:49:01 26 4
gpt4 key购买 nike

这是我的 mysql 查询的一个粗略示例(注意:这是在另一个遍历所有用户的循环内):

$query = db.query('SELECT * FROM table WHERE userid = $uid AND reminded = 0');

while ($row = $query->fetch()) {
// send personalized reminder email to the user
db.query('UPDATE table SET reminded = 1 WHERE userid = $uid');
}

字段reminded对于该用户的所有实例都设置为 1。

我的问题是:查询/while(获取)是否已根据原始术语( reminded = 0 )加载到内存中,或者剩余的 while 循环是否会根据这些更新进行行为( reminded = 1 )?

假设用户有 50 行,其中 reminded是 0,并且查询选择这些:即使它们在循环期间全部更改为 1,它们在 while 循环的其余部分中是否仍然存在且值为 0?

最佳答案

假设您拥有的代码和 SQL 只是一个示例(因为您应该直接更新而无需 php 循环)。

行的提取是在数据库上逐行执行的。

因此,如果在 while 循环中更新了这些行中的一行或多行,则在下一次迭代中,您将检索并(再次)更新先前更新的行。

我认为,“仅”当您更新属于索引一部分的字段或在 SQL 中用于检索数据的字段(例如,在 ORDER 中使用的字段)时,您必须小心。 BY 等)。

关于php - 更新 Select 查询循环所基于的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55163872/

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