Hallo,
vorhanden ist eine Tabelle.
Diese logt nur Profilaufrufe mit.
Ich möchte jetzt aber alle Datensätze löschen, die älter sind als jeweils der 10 Eintrag.
Ok, soweit kein Problem. Habe das zu Testzwecken mal als Select Abfrage gemacht.
Das wäre jetzt für den User mit der ID 1
Nun möchte ich das aber für alle User machen.
Muß ich da alle User in einer while Schleife durchlaufen und in dieser Schleife diese Abfrage einsetzten oder geht das noch eleganter mit einer SQL Abfrage?
vorhanden ist eine Tabelle.
PHP-Code:
CREATE TABLE prefix_visit (
visit_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
user_id INTEGER UNSIGNED NULL,
visit_user_id INTEGER UNSIGNED NOT NULL,
datum DATETIME NULL,
PRIMARY KEY(visit_id),
INDEX prefix_visit_FKIndex1(user_id),
INDEX prefix_visit_FKIndex2(prefix_user_id)
);
Ich möchte jetzt aber alle Datensätze löschen, die älter sind als jeweils der 10 Eintrag.
Ok, soweit kein Problem. Habe das zu Testzwecken mal als Select Abfrage gemacht.
PHP-Code:
SELECT *
FROM
prefix_visit
WHERE
user_id = 1
AND
datum <=
(
SELECT
datum
FROM prefix_visit
WHERE
user_id = 1
ORDER BY datum DESC
LIMIT 10, 1
)
Nun möchte ich das aber für alle User machen.
Muß ich da alle User in einer while Schleife durchlaufen und in dieser Schleife diese Abfrage einsetzten oder geht das noch eleganter mit einer SQL Abfrage?
Kommentar