gpt4 book ai didi

mysql - sql - 随机选择一行并更新它

转载 作者:行者123 更新时间:2023-11-30 23:48:44 24 4
gpt4 key购买 nike

我的表不是太大,所以我认为像这样获取随机行的方法速度可以接受:

SELECT * FROM table ORDER BY RAND() LIMIT 1;

但是,我真正需要做的是在任何其他连接到达它之前,在同一步骤中更新随机找到的行。这是我无限期运行的尝试,我必须杀死:

BEGIN;
SET @update_id := 0;
UPDATE jobs SET started = NOW(), id = (SELECT @update_id := id)
WHERE id = (SELECT jtemp.id FROM (SELECT * FROM jobs) as jtemp WHERE jtemp.started IS NULL ORDER BY RAND() LIMIT 1);
SELECT @update_id;
COMMIT;

@update_id 是因为我需要将我实际选择的行返回给客户端以供以后更新。

有更好的方法吗?我不认为随机行选择是这里的瓶颈,但我不确定。

最佳答案

这样的事情应该可行。

update yourtable
set field1 = value1
etc
where id =
(select id
from yourtable
order by rand()
limit 1)

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

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