通过多次编辑更新 Mysql


Update Mysql with more than one edit

所以我运行这个php脚本作为cron作业更新记分牌上的用户的分数。

<?php
$servername = "localhost";
$username = "xxx";
$password = "xxx";
$dbname = "xxx";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$sql = "UPDATE scoreboard SET points='23' WHERE id=2500";
if ($conn->query($sql) === TRUE) {
    echo "Record updated successfully";
} else {
    echo "Error updating record: " . $conn->error;
}
$conn->close();
?> 

这一次只能用一个id。如何编辑 3 个具有不同点的 id?谢谢。

通常不会在记分板的用户列表中为每个查询更新 3 个 ID。一次一个请求工作得很好,包括 3 个不会让它更快,除非这 3 个玩家都有相同的分数,但你特别提到你想要 3 个 ID,每个 ID 的分数不同。

如果它与性能/效率有关,请使用预准备语句(mysqli 的 prepare),并在prepare()后使用循环,其中您:

  1. bind()参数(每次针对不同的用户/点)
  2. execute()

如果你必须......你可以...

update scoreboard 
set points = case when ID = 2500 then '23' 
                  when Id = 'XXXX' then 'YY' 
                  when ID = 'YYYY' then 'XX' end 
where ID in (2500,'XXXX','YYYY') 

但是单个更新在这里更有意义。您可以将批量插入写入临时表,如果您有数千条记录要使用不同的值进行更新,则可以从该表进行更新。 这可能会更快。