Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL seleziona distinto

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.

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

    Genera una riga per ogni coppia distinta di valori tra ticket_id e pippo.

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

    Se ci sono tre valori distinti di ticket_id, questo restituirebbe solo tre righe? E se ci fossero sei valori distinti di foo? Quali tre valori dei sei possibili valori di foo dovrebbero essere emessi?
    È ambiguo come scritto.