Come scrivere una query sql che restituisca solo gli ultimi 10 records

Sto cercando d'implementare un mio cms per la gestione dei dati di un blog, cercavo un modo per farmi restituire gli ultimi commenti lasciati su un dato post.

La query sql deve essere in grado di restituire solo gli ultimi 10 record considerato che nella tabella mysql che rappresenta i commenti del post sono presenti i campi (colonne) date e time per individuare ed ordinare in modo cronologico i commenti lasciati, dal più rencente al meno recente.

Qual'è il modo migliore per scrivere questa query che restituisca solo gli ultimi 10 records in ordine cronologico su campi date e time?

In Corso 3
MySql 29-04-2019 2 Risposte 4354 Visite +1
Paolo Cereschini

Paolo Cereschini

Autore di questa domanda

Risposte ( 2 approvate )

  1. Giorgio Borelli
    0
    29-04-2019 16:25:43
    Rispondi

    Aggiungo a quanto già risposto che probabilmente tu abbia implementato anche una relazione 1 a n tra la tabella che rappresenta il post del blog ed i commenti ad esso associati, sarebbe più opportuno scrivere una query che sfrutti tale relazione tramite un semplice JOIN, oppure ancora più banalmente passare l'id (identificativo) del post nella query e filtrare i soli commenti (records) del post con una clausola WHERE, così:

    SELECT * FROM Comments WHERE Comments.idpost=12
    order by ColDate DESC, ColTime DESC LIMIT 10

    Ovviamente 12 indica l'id del post, ma questo è solo un esempio, potrebbe essere qualunque numero positivo indicante la primary key della tabella post, vedi tu come adattarlo alla logica del tuo applicativo.

  2. Michele Brughese
    0
    29-04-2019 16:16:50
    Rispondi

    Supponendo che la tabella si chiami Comments, la query che cerchi di eseguire è molto semplice, per ritornare solo gli ultimi 10 records di una tabella, in MySql ti basta usare l'operatore LIMIT in questo modo:

    SELECT * FROM Comments ORDER BY date DESC LIMIT 10

    e li ordini con ORDER BY per il campo date in maniera decrescente (DESC), semplice no!

Rispondi

Per poter rispondere a questa domanda, devi essere registrato e loggato sul sito, dopodichè compila il box sottostante cercando di essere il più chiaro ed esauriente possibile, la tua risposta potrebbe essere la soluzione che l'utente cerca ed essere contrassegnata come migliore, consentendoti così di ottenere punti ed autorevolezza.

 Domanda Precedente

 Elenco Domande 

Domanda Successiva