sql >> Database >  >> RDS >> Mysql

Hoe kan ik alleen de eerste afzonderlijke overeenkomst uit een veld in MySQL selecteren?

DISTINCT niet op die manier werkt, moeten de waarden verschillend zijn in alle kolommen die worden geretourneerd.

U kunt altijd een aggregatiefunctie gebruiken op de hash functie en GROUP BY name die één hash teruggeeft waarde voor elke name :

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

Zie SQL Fiddle met demo .

Opmerking: de aggregatiefunctie gebruiken met de GROUP BY zorgt ervoor dat u altijd de verwachte waarde voor de hash . teruggeeft kolom. Wanneer u niet GROUP BY of verzamel de items in de SELECT lijst, kunt u onverwachte resultaten opleveren. (zie MySQL-extensies voor GROUP BY )

Uit de MySQL-documenten:



  1. Een opgeslagen procedure aanroepen in JDBC

  2. Shell-script om pgsql-commando's in bestanden uit te voeren

  3. Bepaling en configuratie van de R12.2-editie

  4. De basisprincipes van het afstemmen van MySQL op dedicated servers