Mysql seleziona distinto

Sto provando a selezionare le righe duplicate nella tabella mysql funziona bene per me ma il problema è che non mi permette di selezionare tutti i campi in quella query, semplicemente lasciandomi selezionare il nome del campo che ho usato come distinto, lemme write the query per una migliore comprensione

mysql_query("SELECT DISTINCT ticket_id FROM temp_tickets ORDER BY ticket_id") mysql_query("SELECT * , DISTINCT ticket_id FROM temp_tickets ORDER BY ticket_id") 

Il primo sta funzionando bene

ora quando sto provando a selezionare tutti i campi sto finendo con errori

sto provando a selezionare l’ultimo dei duplicati diciamo che ticket_id 127 è 3 volte sulla riga id 7,8,9 quindi voglio selezionarlo una volta con l’ultima voce che sarebbe 9 in questo caso e questo vale per tutto il resto di ticket_id’s

Qualche idea, grazie

Stai cercando "SELECT * FROM temp_tickets GROUP BY ticket_id ORDER BY ticket_id ?

AGGIORNARE

 SELECT t.* FROM (SELECT ticket_id, MAX(id) as id FROM temp_tickets GROUP BY ticket_id) a INNER JOIN temp_tickets t ON (t.id = a.id) 

DISTINCT non è una funzione che si applica solo ad alcune colonne. È un modificatore di query che si applica a tutte le colonne nell’elenco di selezione.

Cioè, DISTINCT riduce le righe solo se tutte le colonne sono identiche alle colonne di un’altra riga.

DISTINCT deve seguire immediatamente dopo SELECT (insieme ad altri modificatori di query, come SQL_CALC_FOUND_ROWS). Quindi, seguendo i modificatori di query, puoi elencare le colonne.

  • A DESTRA: SELECT DISTINCT foo, ticket_id FROM table...

    Emettere una riga per ogni distinto accoppiamento di valori tra ticket_id e foo.

  • ERRATO: SELECT foo, DISTINCT ticket_id FROM table...

    Se ci sono tre valori distinti di ticket_id, questo restituirebbe solo tre righe? Cosa succede se ci sono sei distinti valori di foo? Quali sono i tre valori dei sei possibili valori di foo?
    È ambiguo come scritto.

Puoi usare group by anziché distinct. Perché quando si utilizza distinti, si avrà difficoltà a selezionare tutti i valori dalla tabella. A differenza di quando usi group by, puoi ottenere valori distinti e anche tutti i campi nella tabella.

Puoi usare così

mysql_query (“SELECT DISTINCT (ticket_id), column1, column2, column3 FROM temp_tickets ORDER BY ticket_id”)

usa una sottoselezione:

http://forums.asp.net/t/1470093.aspx