중복을 제거 하기 위해 distinct, group by를 사용하는데요, 장고에서 group by 사용하는 방법을 알아 보겠습니다.
개인적으로 쿼리를 사용하는 것이 익숙해서 HeidiSQL에서 쿼리 테스트를 하고 raw SQL 쿼리를 코드에 직접입력하는 방식을 사용합니다.
from django.db import connection
cursor = connection.cursor()
query = "SELECT id FROM posts GROUP BY subject HAVING COUNT(subject)>1"
cursor.execute(query)
ids_list = [item[0] for item in cursor.fetchall()]
queryset = Posts.objects.filter(id__in=ids_list)
for posts in queryset:
posts.active = 0
posts.save()
같은 subject의 count가 1개 초과로, 중복으로 판단되는 행에 대하여 active=0 해줍니다.
하지만 중복목록이 만개라면?
다음 포스트는 update를 Raw SQL Query하는 방법을 알아보겠습니다.
'개발자' 카테고리의 다른 글
[PowerShell] 보안 오류: (:) [], PSSecurityException (0) | 2021.08.04 |
---|---|
[django] update를 Raw SQL Query하는 방법 (0) | 2021.07.23 |
[bootstrap] 항상 찾아보는 컬러표 color (0) | 2021.07.21 |
[AD센스] 애드센스를 사용하려면 사이트에서 발견된 문제를 해결해야 합니다 (0) | 2021.07.18 |
[python] IndentationError: unindent does not match any outer indentation level 들여쓰기 불일치 오류 (0) | 2021.07.16 |