如何使用Python和Django编程执行MySQL更新?

2024-10-01 22:30:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用mySQL中的updatecase场景在一个查询中更新多行。 我正在使用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

所以这个查询将根据我的需要更新所有字段。我的问题是,如果要更新的行数未知,如何编程?假设所有这些数字都来自一个数组,我将把它传递到我的视图中,我不知道我需要在什么时候编写多少语句?谢谢你的帮助


Tags: djangoweb应用程序密码numbermysql场景order
1条回答
网友
1楼 · 发布于 2024-10-01 22:30:29

您可以使用条件^{}^{}以编程方式构建查询

例如:

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))

相关问题 更多 >

    热门问题