如何在Django中设置和追加条件格?

ff29svar  于 2022-12-05  发布在  Go
关注(0)|答案(1)|浏览(109)

我想在Django中运行这个sql查询

UPDATE `TABLE` SET `COLUMN` = (CASE WHEN `COLUMN` = "" THEN '100' ELSE CONCAT(`COLUMN`,'100') END)
WHERE `SOMEID` IN [id1,id2,id3];

我试过这个

from django.db.models import Case, When, F
Table.objects.filter(someid__in=[id1,id2,id3]).
update(column=
  Case(
    When(column="",then="100"),
    default= column + "100",
  )
)

我不知道如何把concat在默认这里。

nwnhqdif

nwnhqdif1#

可以使用F对象:

from django.db.models import F

Table.objects.filter(...).update(column=F("column") + "100")

您不需要检查是否为column == "",因为将"100"附加到它之后并不重要。

相关问题