Klaus Mock: Problem für MySQL Profis

Beitrag lesen

Hallo,

SELECT Artikelname FROM table ORDER BY Preis,Timestamp LIMIT 1

[...]

SELECT Artikelname FROM table
   WHERE Preis = ( SELECT MIN(Preis) from table)

Aber das ist es eigentlich was ich will, wobei, wenn ich hier noch den mit dem ältesten Timestamp finden will, brauche ich da wohl noch ein Subselect oder RDER BY + Limit, oder?

Wenn Du sowieso den Artikel mit dem kleinsten Preis und dem ältesten Timestamp haben willst, finde ich Deinen Ansatz an sich nicht so schlecht, wobei Du anscheinend gerne nur 'zitzerlweise'[1] mit der ganzen Wahrheit herausrückst;-)

Die Abfarge soll aber mit MySQl _und_ PostgreSQL funktionieren, udn ich denek obige sollte das tun. Da gibt es nämlich so lustige Sachen wie dass LIMIT 1,2 in MySQL andere Datensätze zurück gibt als in PostgreSQL(da wäre das dann LIMIT 2,1)...
Das macht eien DB-Abstraktion nicht wirklich leichter...

<cite src="Sheryl Crow">
No one said it would be easy
</cite>

Günstigerweise lagert man dann die Statements in Module aus, welche konfigurationsabhängig herangezogen werden. Wobei es ishc als hilfreich erwiesen hat, wenn die Datenbankschnistelle Bind-Variablen beherrscht.

Grüße
  Klaus

[1] ähm, das ist im steirischen gerne verwendet und entspricht in etwa 'häppchenweise', aber nur im entferntesten.