SQL alle bis auf einen von aufeinanderfolgenden Einträge mit gleichem Wert löschen
Geizhals » Forum » Programmierung » SQL alle bis auf einen von aufeinanderfolgenden Einträge mit gleichem Wert löschen (22 Beiträge, 469 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.
Re: SQL alle bis auf einen von aufeinanderfolgenden Einträge mit gleichem Wert löschen
05.01.2017, 21:49:59
mysql> CREATE TABLE `test` (
    ->     `id` int(11) NOT NULL AUTO_INCREMENT,
    ->     `fk` int(11) NOT NULL,
    ->     `zeit` time NOT NULL,
    ->     PRIMARY KEY (`id`)
    -> ) ENGINE=InnoDB;
Query OK, 0 rows affected (0.03 sec)

mysql> INSERT INTO `test`
    ->     (`fk`, `zeit`)
    -> VALUES
    ->     (12, '12:07'),
    ->     (15, '12:06'),
    ->     (15, '12:05'),
    ->     (15, '12:04'),
    ->     (69, '12:03'),
    ->     (17, '12:02'),
    ->     (17, '12:01'),
    ->     (15, '12:00');
Query OK, 8 rows affected (0.00 sec)
Records: 8  Duplicates: 0  Warnings: 0

mysql> SELECT `fk`, `zeit` FROM `test`;
+----+----------+
| fk | zeit     |
+----+----------+
| 12 | 12:07:00 |
| 15 | 12:06:00 |
| 15 | 12:05:00 |
| 15 | 12:04:00 |
| 69 | 12:03:00 |
| 17 | 12:02:00 |
| 17 | 12:01:00 |
| 15 | 12:00:00 |
+----+----------+
8 rows in set (0.00 sec)

mysql> DELETE t1.* FROM `test` t1
    -> INNER JOIN `test` t2 ON (
    ->     t2.`fk` = t1.`fk` AND t2.`zeit` = t1.`zeit` + INTERVAL 1 MINUTE
    -> );
Query OK, 3 rows affected (0.00 sec)

mysql> SELECT `fk`, `zeit` FROM `test`;
+----+----------+
| fk | zeit     |
+----+----------+
| 12 | 12:07:00 |
| 15 | 12:06:00 |
| 69 | 12:03:00 |
| 17 | 12:02:00 |
| 15 | 12:00:00 |
+----+----------+
5 rows in set (0.00 sec)


Dieser Beitrag bezieht sich auf eine ältere Version des beantworteten Postings!
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung