Maison > base de données > tutoriel mysql > Comment rechercher des lignes avec des valeurs de champ en double à l'aide de Django ORM ?

Comment rechercher des lignes avec des valeurs de champ en double à l'aide de Django ORM ?

Linda Hamilton
Libérer: 2025-01-05 08:42:41
original
758 Les gens l'ont consulté

How to Find Rows with Duplicate Field Values Using Django ORM?

Requête Django pour les lignes avec des valeurs de champ en double

Supposons que nous ayons un modèle Django avec un champ non unique. Nous devons sélectionner toutes les lignes du modèle qui ont au moins une valeur en double pour ce champ.

Approche SQL simple

Une solution possible consiste à utiliser du SQL simple :

SELECT *
FROM literal
WHERE name IN (
    SELECT name
    FROM literal
    GROUP BY name
    HAVING COUNT(*) > 1
);
Copier après la connexion

Approche ORM de Django

Utilisation de Django ORM, nous pouvons obtenir le même résultat avec une combinaison de valeurs(), annotate(), order_by() et filter() :

from django.db.models import Count

dupes = Literal.objects.values('name') \
                    .annotate(Count('id')) \
                    .order_by() \
                    .filter(id__count__gt=1)
Copier après la connexion

Comme le code ci-dessus renvoie un ValuesQuerySet, nous devons convertir vers un QuerySet normal pour l'utiliser comme filtre :

duplicates = Literal.objects.filter(name__in=[item['name'] for item in dupes])
Copier après la connexion

Cette approche garantit que nous sélectionnons uniquement les lignes avec des valeurs de nom en double.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal