python - Comment écrire une telle instruction MySQL pour GROUP BY dans Django?
怪我咯
怪我咯 2017-06-07 09:24:57
0
2
780

Je suis nouveau sur Django (également un salaud de MySQL)
J'ai cherché sur Baidu et essayé d'écrire une syntaxe MySQL. Je veux utiliser Django pour l'écrire, mais je ne peux pas, alors je suis venu ici pour obtenir de l'aide,
mysql. c'est

SELECT keywords_id, MAX(id) AS id FROM news_article GROUP BY
keywords_id ORDER BY id DESC LIMIT 0,10

Où 'keywords_id' est la clé étrangère de la table 'news_article', dans le modèle Article

;

L'objectif principal est le suivant : je souhaite extraire les 10 dernières données uniques dans le champ 'keywords_id' de la table 'news_article' et pouvoir lire les valeurs des autres champs (utilisez cette syntaxe mysql pour extraire d'abord la valeur d'identifiant unique, puis utilisez la valeur d'identifiant pour le faire. Extrayez conditionnellement les valeurs des autres champs, puis affichez-les sur la page du modèle).

Je ne sais pas si la description du problème est claire, je suis donc là pour vous aider~

怪我咯
怪我咯

走同样的路,发现不同的人生

répondre à tous(2)
PHPzhong

S'il s'agit simplement d'une simple analyse et d'un traitement de données qui n'implique pas l'utilisation du multi-threading dans la base de données, il est recommandé d'utiliser le module pandas, qui a une bonne méthode groupby. Vous pouvez voir s'il est intuitif et applicable.
django-pandas est disponible pour Django, il est recommandé de l'essayer.
La déclaration des pandas s'écrira probablement ainsi :

import pandas as pd
...
df = pd.DataFrame(news_article.groupby('keywords_id'))
df.sort_values(by=['id'], ascending = False)[0:10]
世界只因有你
from django.db.models import Max

Article.objects.values('keywords_id').annotate(maxid=Max('id')).order_by['-id'][:10]

La structure est à peu près comme ceci, les détails devront peut-être être débogués
Référence
https://docs.djangoproject.co...

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal