Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak mogę wybrać tylko pierwsze odrębne dopasowanie z pola w MySQL?

DISTINCT nie działa w ten sposób, wartości muszą być różne we wszystkich zwracanych kolumnach.

Zawsze możesz użyć funkcji agregującej w hash funkcja i GRUPA WEDŁUG nazwy co zwróci jeden hash wartość dla każdej nazwy :

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

Zobacz SQL Fiddle z wersją demonstracyjną .

Uwaga: za pomocą funkcji agregującej z GROUP BY upewni się, że zawsze zwrócisz oczekiwaną wartość dla hash kolumna. Kiedy nie GROUP BY lub agregować elementy w SELECT listy, możesz zwrócić nieoczekiwane wyniki. (patrz Rozszerzenia MySQL do GROUP BY )

Z dokumentacji MySQL:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tabela Mysql z indeksem złożonym, ale bez klucza podstawowego

  2. Zduplikuj / skopiuj rekordy w tej samej tabeli MySQL

  3. zainstaluj mysql i mysqlnd na Ubuntu 12.04

  4. MySQL otrzymuje wszystkie zmienione wiersze dla wielu instrukcji w jednym zapytaniu

  5. Rozwiązanie dla wstawiania blokad intencji w MySQL