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

Come posso selezionare solo la prima corrispondenza distinta da un campo in MySQL?

DISTINCT non funziona in questo modo, i valori devono essere distinti in tutte le colonne restituite.

Puoi sempre utilizzare una funzione di aggregazione sull'hash funzione e GROUP BY name che restituirà un hash valore per ogni name :

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

Vedi SQL Fiddle con demo .

Nota: utilizzando la funzione di aggregazione con il GROUP BY si assicurerà di restituire sempre il valore previsto per l'hash colonna. Quando non GROUP BY oppure aggrega gli elementi nel SELECT list, potresti restituire risultati imprevisti. (vedi Estensioni MySQL a GROUP BY )

Dai documenti MySQL: