Maison  >  Questions et réponses  >  le corps du texte

mysql - Interroger les valeurs uniques d'un certain champ dans la base de données, triées par heure, comment l'écrire?

Le modèle de l'article est le suivant

Article de classe (modèles.Modèle):

title = models.CharField(max_length=150, verbose_name='文章标题', unique=True)
content = models.TextField(verbose_name='文章内容')
describe = models.CharField(max_length=500, verbose_name='文章描述', blank=True, null=True)
date_publish = models.DateTimeField(auto_now_add=True, verbose_name="发布时间")
click_count = models.PositiveIntegerField(verbose_name='点击次数', blank=True, null=True, default=0)
keywords = models.ForeignKey(Keywords, blank=True, null=True, verbose_name='关键词')  

class Meta:
    verbose_name = '文章'
    verbose_name_plural = verbose_name
    ordering = ['-date_publish']

def __str__(self):
    return self.title

Requête : s'il y a plusieurs éléments de données sous le champ de clé étrangère "mots-clés", un seul élément sera pris en compte. Pour plusieurs éléments de données, celui avec le plus grand nombre de clics sera pris en fonction du nombre de clics, puis celui avec le plus grand nombre de clics. la valeur du titre/contenu/description sera obtenue et sortie vers le modèle de page Web.

Je souhaite utiliser une syntaxe de requête, comment l'écrire

代言代言2678 Il y a quelques jours938

répondre à tous(1)je répondrai

  • 代言

    代言2017-06-20 10:07:37

    Fonction d'analyse de mots-clés mysql (fonction fenêtre), puisque mysql ne prend pas en charge max over, elle ne peut être écrite que comme suit :

    SELECT tt.*
    FROM table tt
      INNER JOIN (SELECT
                    keyword,
                    max(click_count) maxcount
                  FROM table
                  GROUP BY keyword) groupedtt ON tt.keyword = groupedtt.keyword AND tt.click_count = groupedtt.maxcount
    ORDER BY tt.create_time

    répondre
    0
  • Annulerrépondre