Heim  >  Fragen und Antworten  >  Hauptteil

mysql - Fragen Sie die eindeutigen Werte eines bestimmten Felds in der Datenbank ab, sortiert nach Zeit. Wie schreibt man das?

Das Artikelmodell ist wie folgt

Klassenartikel(models.Model):

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

Abfrage: Wenn sich unter dem Fremdschlüsselfeld „Schlüsselwörter“ mehrere Daten befinden, wird nur ein Datenteil verwendet. Bei mehreren Daten wird dasjenige mit der größten Anzahl an Klicks gemäß click_count und dann das verwendet Der Wert von Titel/Inhalt/Beschreibung wird ermittelt und an die Webseitenvorlage ausgegeben.

Ich möchte eine Abfragesyntax verwenden, wie man sie schreibt

代言代言2678 Tage vor939

Antworte allen(1)Ich werde antworten

  • 代言

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

    关键字mysql分析函数(开窗函数),由于mysql不支持max over只能写成如下:

    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

    Antwort
    0
  • StornierenAntwort