gpt4 book ai didi

MySQL——一个语句中的多个更新?

转载 作者:行者123 更新时间:2023-11-28 23:05:27 25 4
gpt4 key购买 nike

我在 MySQL 中有一个表,如下所示:

studentID subjectID anotherID anotherID2, AnotherID3, studentScore

这个表里面有大约100M个学生的记录。


假设我将以下信息存储在两个 python 列表中:

listStudentIDs = [1, 123, 33, 5524, 425653]

listNewScores = [12.76, 73.2, 83.893, 92.3, 53.6]

如果一个查询可以更新所有学生(其ID在listStudentIDs中)的所有studentScore字段,并且仅当他们在 listNewScores 中的分数大于他们当前存储在数据库中的分数 (studentScore) 时?

最佳答案

在您的示例中,它们是 5 个学生 ID,仅更新 4 个分数。

如果您要更新的学生列表不是很长,那么您可以像这样在一个查询中进行更新:

UPDATE t_student
SET studentScore = CASE
WHEN studentID=1 THEN 12.76
WHEN studentID=123 THEN 73.2
WHEN studentID=33 THEN 83.893
WHEN studentID=5524 THEN 92.3
ELSE studentScore END
WHERE studentID IN (1, 123, 33, 5524, 425653)

尽管如此,您可能会考虑使用包含多个查询的 SQL 语句:

UPDATE t_student SET studentScore = 12.76  WHERE studentID = 1;
UPDATE t_student SET studentScore = 73.2 WHERE studentID = 123;
UPDATE t_student SET studentScore = 83.893 WHERE studentID = 33;
UPDATE t_student SET studentScore = 92.3 WHERE studentID = 5524;

关于MySQL——一个语句中的多个更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6124450/

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