Rolf B: mySQL: Satz mit dem minimalen Wert

Beitrag lesen

Hallo Linuchs,

diesen Umstand, dass MYSQL den ersten Satz nimmt den es antrifft, kann man aber auch ausnutzen:

SELECT *
FROM (SELECT key, value, col1, col2, col3)
      FROM sometable
      ORDER BY key, value) xyz
GROUP BY key

Der ORDER BY sorgt dafür, dass der Satz mit MIN(value) dem GROUP BY als erstes zum Fraße vorgeworfen wird. Für die übrigen Spalten wählt MYSQL die Werte des ersten Satzes, und - ta dah - der gewünschte Effekt ist erreicht.

ABER ABER ABER: Das ist das Ausnutzen eines beobachteten Verhaltens, das die Doku als "undefiniert" beschreibt. Es gibt keine Garantie, dass dieses Verhalten so bleiben wird. Mein Self-Join, den ich vorhin beschrieben habe, basiert auf definiertem Verhalten.

Rolf

--
sumpsi - posui - clusi