Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL wählen Sie eindeutig aus

DISTINCT ist keine Funktion, die nur für einige Spalten gilt. Es ist ein Abfragemodifikator, der für alle Spalten in der Auswahlliste gilt.

Das heißt, DISTINCT reduziert Zeilen nur, wenn alle Spalten sind identisch mit den Spalten einer anderen Zeile.

DISTINCT muss unmittelbar nach SELECT folgen (zusammen mit anderen Abfragemodifikatoren wie SQL_CALC_FOUND_ROWS). Anschließend können Sie nach den Abfragemodifikatoren Spalten auflisten.

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

    Geben Sie eine Zeile für jedes unterschiedliche Wertepaar zwischen ticket_id und aus foo.

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

    Wenn es drei unterschiedliche Werte von ticket_id gibt, würde dies nur drei Zeilen zurückgeben? Was ist, wenn es sechs unterschiedliche Werte von foo gibt? Welche drei der sechs möglichen Werte von foo sollen ausgegeben werden?
    Es ist wie geschrieben mehrdeutig.