Hello,
Welche Systemvariablen meinst du?
Tschuldigung, ich meinte User-Variablen. :-)
CREATE TABLE zeit
(
id
bigint(20) unsigned NOT NULL AUTO_INCREMENT,
zeitstempel
bigint(20) DEFAULT NULL,
bemerkung
varchar(20) DEFAULT NULL,
PRIMARY KEY (id
)
) ENGINE=MyISAM AUTO_INCREMENT=17 DEFAULT CHARSET=latin1 |
set @z1:=0;
select zeitstempel, if(zeitstempel-@z1 > @z1, @z1:=zeitstempel-@z1,@z1) as diff from zeit;
+-------------+---------+
| zeitstempel | diff |
+-------------+---------+
| 1000 | 1000 |
| 11000 | 10000 |
| 111000 | 101000 |
| 1511000 | 1410000 |
| 100 | 1410000 |
| 200 | 1410000 |
| 400 | 1410000 |
+-------------+---------+
7 rows in set (0.01 sec)
mysql> select zeitstempel, (zeitstempel-@z1) as diff, @z1:=zeitstempel as z1 from zeit order by zeitstempel;
+-------------+----------+---------+
| zeitstempel | diff | z1 |
+-------------+----------+---------+
| 100 | -1510900 | 100 |
| 200 | 100 | 200 |
| 400 | 200 | 400 |
| 1000 | 600 | 1000 |
| 11000 | 10000 | 11000 |
| 111000 | 100000 | 111000 |
| 1511000 | 1400000 | 1511000 |
+-------------+----------+---------+
7 rows in set (0.00 sec)
eventuell in Temp-Table schreiben und dann das Minimum abfragen
Ginge das auch als Subselect?
Die Sortierung muss ja über `zeitstempel´ laufen, weil sonst nicht die Differenz zwischen zwei Folgeelementen gebildet würde...
Das Sortieren über diff
ist im ersten Schritt also nicht sinnvoll.
Die ID sollte man natürlich auch mit abfragen ;-)
Hab ich aber hier nicht gemacht.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg