gpt4 book ai didi

mysql同时选择和更新

转载 作者:行者123 更新时间:2023-11-29 21:26:23 25 4
gpt4 key购买 nike

我有一个数据库,其中包含我的应用程序的测试用例,我想同时运行几个进程。现在看起来像这样

SELECT * FROM tests WHERE status = 0 LIMIT 20;

我想将所有这 20 条记录的状态更改为“2”(正在处理),以避免另一个进程采用相同数据进行测试的情况。是否可以在一个查询中实现?

<小时/>

编辑:
我想同时运行 20 个进程,它们都做同样的事情,但我不希望它们处理相同的数据 - 这就是为什么我想首先 -> 从数据库中获取 20 条记录,状态= 0,同时为所有 20 条记录设置 status=2 -> 通过为这 20 条记录中的每条记录设置适当的状态来处理它们 -> 回到开头

这样我就可以避免两个不同的进程从数据库获取相同数据的情况

最佳答案

您可以使用以下内容:

UPDATE 
tests t1,
(SELECT `id` FROM tests WHERE `status` = 0 LIMIT 0,20) t2
SET t1.`status` = 2
WHERE
t1.`id` = t2.`id`

关于mysql同时选择和更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35482804/

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