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

Hvordan kan jeg kun vælge det første særskilte match fra et felt i MySQL?

DISTINCT ikke fungerer på den måde, skal værdierne være forskellige på tværs af alle kolonner, der returneres.

Du kan altid bruge en aggregeret funktion på hash funktion og GRUPPER EFTER navn som vil returnere én hash værdi for hvert navn :

SELECT name, min(hash) hash
FROM my_table 
WHERE name LIKE '%An%' 
GROUP BY name;

Se SQL Fiddle with Demo .

Bemærk: ved at bruge aggregatfunktionen med GROUP BY vil sørge for, at du altid returnerer den forventede værdi for hash kolonne. Når du ikke GRUPPER EFTER eller aggregér elementerne i SELECT liste, kan du returnere uventede resultater. (se MySQL-udvidelser til GROUP BY )

Fra MySQL Docs:



  1. Overvågning af Percona Server til MySQL - Key Metrics

  2. Mange-til-mange-relationer i MySQL

  3. Hvordan opretter man to automatiske inkrementkolonner i MySQL?

  4. Vil et SQL Server-job springe en planlagt kørsel over, hvis det allerede kører?