sql >> Database >  >> RDS >> Mysql

Mysql selecteer onderscheiden

DISTINCT is geen functie die alleen van toepassing is op enkele kolommen. Het is een query-modifier die van toepassing is op alle kolommen in de selectielijst.

Dat wil zeggen, DISTINCT verkleint rijen alleen als alle kolommen zijn identiek aan de kolommen van een andere rij.

DISTINCT moet onmiddellijk na SELECT volgen (samen met andere query-modifiers, zoals SQL_CALC_FOUND_ROWS). Vervolgens kunt u de querymodifiers volgen en kolommen weergeven.

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

    Voer een rij uit voor elke afzonderlijke combinatie van waarden voor ticket_id en foo.

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

    Als er drie verschillende waarden van ticket_id zijn, zou dit dan slechts drie rijen opleveren? Wat als er zes verschillende waarden van foo zijn? Welke drie waarden van de zes mogelijke waarden van foo moeten worden uitgevoerd?
    Het is dubbelzinnig zoals geschreven.



  1. AWS Python Lambda met Oracle

  2. Hoe unicode op te slaan in MySQL?

  3. Optimale manier om gespecificeerde rijen te VERWIJDEREN uit Oracle

  4. Toegang krijgen tot een bestands-DSN vanuit Java