ホームページ > データベース > mysql チュートリアル > Django で重複したフィールド値を持つ行を選択する方法は?

Django で重複したフィールド値を持つ行を選択する方法は?

Susan Sarandon
リリース: 2025-01-04 11:09:35
オリジナル
735 人が閲覧しました

How to Select Rows with Duplicate Field Values in Django?

Django で重複フィールド値を持つ行を選択する

特定のフィールドに少なくとも 1 つの重複値を持つモデルからすべての行を選択するには、Django の集計とフィルタリングを組み合わせて使用​​できます。機能:

  1. 集計値: annotate() メソッドを使用して、指定されたフィールドの重複値の数を計算します。たとえば、名前フィールドを持つモデルの場合:
from django.db.models import Count
dupes = Literal.objects.values('name').annotate(id_count=Count('id'))
ログイン後にコピー
  1. カウントに基づいたフィルター: filter() メソッドを使用して、カウントが超過する行を選択します。 1. これにより、複製された値を含む ValuesQuerySet が返されます。値:
dupes = dupes.filter(id_count__gt=1)
ログイン後にコピー
  1. 完全なレコードを取得: 完全なレコードを取得するには、in フィルターを使用して、名前フィールドが重複した値と一致する行を選択します:
dupes = Literal.objects.filter(name__in=[item['name'] for item in dupes])
ログイン後にコピー

代替 SQL解決策:

必要に応じて、サブクエリを使用して同じ結果を達成することもできます:

SELECT *
FROM literal
WHERE name IN (
    SELECT name
    FROM literal
    GROUP BY name
    HAVING COUNT(*) > 1
);
ログイン後にコピー

以上がDjango で重複したフィールド値を持つ行を選択する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート