如何使用Python和Django编程地执行MySQL更新?
我想使用mySQL中的更新案例场景在一个查询中更新多行。 我正在使用python和Django构建我的web应用程序。这是我的密码:如何使用Python和Django编程地执行MySQL更新?,python,mysql,django,Python,Mysql,Django,我想使用mySQL中的更新案例场景在一个查询中更新多行。 我正在使用python和Django构建我的web应用程序。这是我的密码: UPDATE order SET priority_number = CASE priority_number WHEN 2 THEN 3 WHEN 3 THEN 4 WHEN 1 THEN 5 WHEN 4 THEN 2 WHEN 5 THEN 1 END 所以这个查询将按照我的要求更新所有字段。我的问题是,
UPDATE order
SET priority_number =
CASE priority_number
WHEN 2 THEN 3
WHEN 3 THEN 4
WHEN 1 THEN 5
WHEN 4 THEN 2
WHEN 5 THEN 1
END
所以这个查询将按照我的要求更新所有字段。我的问题是,如果要更新的行数未知,如何编程?假设所有这些数字都来自一个数组,我将把它传递到我的视图中,我不知道我需要在什么时候写多少条语句?谢谢你的帮助 您可以使用条件和以编程方式构建查询 例如:
from django.db.models import Case, When
# Make a list of When expressions
when_list = [When(priority_number=2, then=3),
When(priority_number=3, then=4)]
# Use in a query of your choice, as an example:
Model.objects.update(
priority_number=Case(
*when_list))
您好,谢谢您的回复!在哪里可以传递我的数组?OP搜索解决方案以查找
更新
而不是选择
更新答案以包含列表。您好,我创建了一个时间列表,如您所述。但当我将它作为*when_list传递到案例中时(根据您的示例),它实际上是试图执行*when_list,而不是列表中的内容。有什么建议吗?对不起,我忘了导入。让我再试一次!