gpt4 book ai didi

php - Mysql 选择值然后更新

转载 作者:行者123 更新时间:2023-11-29 06:49:59 25 4
gpt4 key购买 nike

基本上我想要做的是从表中获取一个转弯 ID,但是在返回值后它需要递增 1。递增 10 次后,它重置为 0;

所以我想做类似的事情,但我似乎无法让它工作:

UPDATE `gan` SET `turn` = (SELECT `turn` FROM `gan` WHERE `gan_id`='$gan_id') + 1

我也没有想出如何检查值是否为 10 以将其重置为 0;

所以我需要做的是,在我的 php mysql 查询中,为我传入的 gan_id 返回当前轮次,并在返回值后递增它。

我试过运行两个单独的查询,但我遇到了多个用户获得相同回合的问题。

最佳答案

mysql_query("SET AUTOCOMMIT = 0");
mysql_query("START TRANSACTION");
$result = mysql_query("SELECT turn FROM gan WHERE gan_id = $gan_id FOR UPDATE");
$turn = mysql_fetch_array($result);
$someNewVal = $turn == 10 ? 0 : $turn + 1;
$resUpdate = mysql_query("UPDATE gan SET turn = $someNewVal WHERE gan_id = $gan_id");
mysql_query("SET AUTOCOMMIT = 1");
mysql_query("COMMIT");

没有?如果你想处理并发,你需要选择 FOR UPDATE。

关于php - Mysql 选择值然后更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16118501/

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