gpt4 book ai didi

mysql - 选择随机行并在同一个查询中更新它们?

转载 作者:行者123 更新时间:2023-11-29 03:58:08 25 4
gpt4 key购买 nike

基本上我想在一个查询中执行以下操作。可能吗?

$q = mysql_query('select * from table ORDER BY rand() LIMIT 5');
$s;
while($r = mysq_fetch_array($q)){
$s[i] = $r['id'];
// Do stuff
}
$u = mysql_query("update table SET lastUpdated = NOW() where id in (".implode(',',$s).")");

最佳答案

你可以直接添加

ORDER BY RAND() LIMIT 5

更新查询结束

编辑:

一开始我漏掉了部分问题。如果您只是需要更新 5 个随机行,上面的方法将起作用。但是,您似乎需要从表中获取 5 个随机 ID,对这些 ID 执行一些操作,然后更新这些行。不幸的是,UPDATE 查询可以修改数据,而 SELECT 查询可以检索数据,但是这两个查询都不能。您可能会创建某种存储过程来更新/选择 5 个随机行,但这会比您当前拥有的 2 个查询更复杂

编辑#2:

如果您希望在同一个查询中执行此操作的原因是并发性,您可以查看 MySQL 的 Locking Read功能。

关于mysql - 选择随机行并在同一个查询中更新它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7796965/

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