sql >> Databasteknik >  >> RDS >> Mysql

Välj distinkt kolumn tillsammans med några andra kolumner i MySQL

Med hjälp av en underfråga kan du få det högsta id för varje namn och välj sedan resten av raderna baserat på det:

SELECT * FROM table
WHERE id IN (
  SELECT MAX(id) FROM table GROUP BY name
)

Om du föredrar, använd MIN(id) för att få den första posten för varje namn istället för den sista.

Det kan också göras med en INNER JOIN mot underfrågan. För detta ändamål bör prestandan vara liknande, och ibland måste du gå med på två kolumner från underfrågan.

SELECT
  table.*
FROM 
  table
  INNER JOIN (
    SELECT MAX(id) AS id FROM table GROUP BY name
  ) maxid ON table.id = maxid.id


  1. Fråga för att söka i alla paket efter tabell och/eller kolumn

  2. Fel vid användning av INSERT INTO-tabellen PÅ DUPLICATE KEY, med en for loop-array

  3. Installerar mysql2 gem för Ruby on Rails med Mac OSX 10.6

  4. Bästa sättet att hantera stora (UUID) som en MySQL-tabell primärnyckel