1
條件我有id
和sort
列表:更新與在Django
ids = ['123', '456', '789', '901'];
sorts = [1, 3, 2, 4];
我想更新在Django每個id
的順序。 這裏是SQL和Django的我曾嘗試:
SQL:
UPDATE "Blogs"
SET sort = CASE
WHEN id = '123' THEN 1
WHEN id = '456' THEN 3
WHEN id = '789' THEN 2
WHEN id = '901' THEN 4
END
WHERE id IN (ids);
Django的:
Blogs.objects.filter(
id=ids
).update(
sort=Case(
When(id=123, then=1),
When(id=456, then=3),
When(id=789, then=2),
When(id=901, then=4),
)
)
但問題是,當IDS有許多因素我不能具體id
和then
的When(id={id}, then={sort})
。 如何優化Django版本中的更新查詢。 在此先感謝。
你正在使用哪個db? sqlite3或MySQL? –
@zhiqianghuang我使用的是postgresql。 – javimuu