Maison >base de données >tutoriel mysql >Comment sélectionner des lignes avec des valeurs de champ en double dans Django ?
Sélection de lignes avec des valeurs de champ en double dans Django
Pour sélectionner toutes les lignes d'un modèle qui ont au moins une valeur en double pour un champ donné , vous pouvez utiliser une combinaison de l'agrégation et du filtrage de Django capacités :
from django.db.models import Count dupes = Literal.objects.values('name').annotate(id_count=Count('id'))
dupes = dupes.filter(id_count__gt=1)
dupes = Literal.objects.filter(name__in=[item['name'] for item in dupes])
Solution SQL alternative :
Si préféré, vous pouvez également utiliser une sous-requête pour obtenir le même résultat :
SELECT * FROM literal WHERE name IN ( SELECT name FROM literal GROUP BY name HAVING COUNT(*) > 1 );
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!