Let eine Tabelle wie folgt sein:MySQL: Auswahl der X kleinsten Werte
CREATE TABLE `amoreAgentTST01` (
`moname` char(64) NOT NULL DEFAULT '',
`updatetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`data` longblob,
PRIMARY KEY (`moname`,`updatetime`)
Ich habe eine Abfrage, die ältesten Datensätze für jede einzelne ‚moname‘ zu finden, aber nur wenn es mehrere Datensätze für diese ' Moname ':
SELECT moname, updatetime FROM amoreAgentTST01 a
WHERE (SELECT count(*) FROM amoreAgentTST01 x WHERE x.moname = a.moname) > 1
AND a.updatetime = (SELECT min(updatetime) FROM amoreAgentTST01 y WHERE y.moname = a.moname) ;
Meine Frage ist: Wie man das selbe tut, aber die X ältesten Werte auswählend? Ich führe das jetzt einfach aus, lösche die ältesten Werte und führe es erneut aus ... was nicht so schön ist.
Sekunden Frage ist: Was halten Sie von der obigen Abfrage? Kann es verbessert werden? Gibt es irgendeine offensichtliche schlechte Praxis?
Vielen Dank im Voraus für Ihre Ratschläge und Hilfe.
Barth
Möchten Sie alle Zeilen auswählen, die nicht die neueste Zeile für dieses Moname sind? Oder nur eine konstante X Zeilen pro Moname? – NickZoic
Eine Konstante X Zeilen pro Moname, wobei diese Zeilen die ältesten sind. – Barth