Mit einer Unterabfrage erhalten Sie die höchste id
für jeden Namen und wählen Sie dann die restlichen Zeilen basierend darauf aus:
SELECT * FROM table
WHERE id IN (
SELECT MAX(id) FROM table GROUP BY name
)
Wenn Sie möchten, verwenden Sie MIN(id)
um den ersten Datensatz für jeden Namen anstelle des letzten zu erhalten.
Dies kann auch mit einem INNER JOIN
erfolgen gegen die Unterabfrage. Zu diesem Zweck sollte die Leistung ähnlich sein, und manchmal müssen Sie zwei mitmachen Spalten aus der Unterabfrage.
SELECT
table.*
FROM
table
INNER JOIN (
SELECT MAX(id) AS id FROM table GROUP BY name
) maxid ON table.id = maxid.id