Django MySQL requête distincte pour obtenir plusieurs valeurs
J'ai un MySQL base de données malheureusement utilisé avec Django 1.4.1.
Distincte de la fonction ne fonctionne que pour POSTGRESQL si je comprends bien.
Je dois faire une requête distinct composé de plusieurs valeurs alors que seulement distinctes,
;
Celui-ci travaille pour POSTGRE, mais pas avec MYSQL,
J'obtiens l'erreur suivante;
DISTINCTES SUR les champs n'est pas pris en charge par cette base de données principale
staff = Staff.objects.order_by('person__full_name').distinct('person__full_name')
Ensuite, j'ai essayé
staff = Staff.objects.values('person__full_name','staff_job_categories').distinct().order_by('person__full_name')
Mais je ne suis pas d'obtenir des valeurs distinctes parce que je suis aussi le personnel des catégories d'emploi. Mais quand je n'ai pas le contenir, je ne pouvais pas l'obtenir sous forme de tableau.
Une idée ?
source d'informationauteur tunaktunak
Vous devez vous connecter pour publier un commentaire.
.distinct([*fields])
ne fonctionne que dans PostgresSQL.De distinctes documentation
Voici la différence. Pour une normale distinct() appel, la base de données compare chaque champ de chaque ligne lors de la détermination des lignes distinctes. Pour un distinct() appeler avec des noms de champ, la base de données a qu'à comparer le champ spécifié noms.
Comme indiqué tous les champs dans un enregistrement sont vérifiées. Les plus susceptibles dans votre cas où vous êtes l'obtention d'enregistrements avec différentes valeurs du champ (plus probablement le cas si vous avez des requêtes de plusieurs tables ManyToMany ou ForeignKey relations).
Pour la consolidation sous forme de tableau vous pouvez vous référer à votre question précédente Django Requête valeurs distinctes fonctionne mais je ne peux pas utiliser le résultat de la requête
vous donnera distinctes noms, prénoms, et vous pouvez faire quelque chose de similaire pour obtenir distinctes des catégories d'emploi.
Ces va vous fournir une liste de valeurs, et non les objets eux-mêmes, mais si j'interprète votre question correctement puis je pense que ce sera vous donner ce que vous voulez.