Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [MySQL] Prelevare ultime 4 righe con una condizione

    Ciao a tutti!

    Ho un piccolo problemino con una query, in pratica devo prelevare 4 righe da un database, solo che queste righe devono essere le ultime per ognuno dei 4 valori presenti in un campo, vado con gli esempi che è meglio mi sà

    Database (content)
    id | cont_type | titolo
    1 | 1 | Titolo 1
    2 | 4 | Titolo 2
    3 | 3 | Titolo 3
    4 | 2 | Titolo 4
    5 | 1 | Titolo 5

    Ora, la query dalla quale prelevo i campi è questa
    codice:
    SELECT  cont_type , MAX(id) AS id, titolo FROM content GROUP BY cont_type
    Il risultato è quasi come desidero, non fosse che in pratica mi preleva gli id 2, 3, 4, 5 e solo un cont_type per tipo (1,2,3,4), il problema è che non lega più il titolo all'id, mi ritrovo quindi una cosa così

    id | cont_type | titolo
    5 | 1 | Titolo 1
    2 | 4 | Titolo 2
    3 | 3 | Titolo 3
    4 | 2 | Titolo 4

    Quando invece il risultato dovrebbe risultare questo
    5 | 1 | Titolo 5
    2 | 4 | Titolo 2
    3 | 3 | Titolo 3
    4 | 2 | Titolo 4

    Idee?

  2. #2
    prova con:

    GROUP BY id, cont_type
    order by id desc
    limit 4

    nel tuo esempio pero' l'ordine non e' definito

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Così pesca i 4 valori nel modo corretto, grazie!

    Hai ragione sull'ordine non definito, diciamo che sarebbe "comodo" ordinarli in base al cont_type (irrilevante se sia da 1 o da 4, posso girare sempre il risultato via php al limite), però non è una cosa fondamentale, diventa quasi uno sfizio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.