Zur Navigation

doppelte DB-Einträge löschen

1 AndiN

Ich habe eine SQL-Tabelle mit den Feldern ID, produktname und timestamp. Im Feld timestamp habe ich Einträge drin stehen im Format "yyyy-mm-dd hh:mm:ss". Nun möchte ich alle doppelten Einträge löschen, bei denen "yyyy-mm-dd" gleich ist. Die Uhrzeit ist irrelevant.

Bisher habe ich folgenden Code genutzt, welcher aber die Uhrzeit auch vergleicht. Wie könnte ich das realisieren?

$sql = "SELECT ID, COUNT(*) FROM Produkte GROUP BY produktname,timestamp HAVING COUNT(*) > 1";

foreach ($pdo->query($sql) as $row)
{
	$sql1 = "DELETE FROM Produkte WHERE ID =".$row['ID'];
	$pdo->query($sql1);
}

21.11.2022 12:54

2 AndiN

Ich glaube, ich habe das Problem gerade selbst gelöst.
Das hier ist offenbar die Lösung:

SELECT ID, COUNT(*) FROM Produkte GROUP BY produktname,DATE(timestamp) HAVING COUNT(*) > 1

21.11.2022 14:01 | geändert: 21.11.2022 14:17

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]