art-d-sign
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 11.10.2004, 17:26   #1
TP-Junior
 
Registriert seit: Dec 2003
#404 macht alles soweit korrekt

[SQL] alle löschen bis auf die aktuellsten 15 Einträge


Hallo ihr alle!

ich hab irgendwie nen Problem:
ich will aus einer Tabelle die die Profilbesuche in meinem Forum loggt
PHP-Code:
CREATE TABLE `fbb_profile_view` (
  `
user_idmediumint(8NOT NULL default '0',
  `
viewer_idmediumint(8NOT NULL default '0',
  `
view_stampint(11NOT NULL default '0',
  `
countermediumint(8NOT NULL default '0'
TYPE=MyISAM
regelmäßig per cron alle einträge für jede User_id löschen lassen bis auf die aktuellsten 15

sprich nach dem Durchlauf sollen pro User nur noch max. 15 Einträge in der Tabelle stehen

ich hab da schon etwas rumprobiert und auch ne Lösung, aber die hat ziemlich viele Anfragen und ist ein ziemlich fieses Kontrukt
bin eigentlich eher auf der suche nach was übersichtlichem
#404 ist offline   Mit Zitat antworten


Alt 11.10.2004, 17:34   #2
TP-Veteran
 
Benutzerbild von the-architect
 
Registriert seit: Jun 2004
Ort: Stuttgart
the-architect bringt sich richtig einthe-architect bringt sich richtig ein
erst ein select um die ersten 15 zu bekommen, diese id's merken und dann ein delet hinterher. oder?
__________________
mein blog | imedo.de | clubrating.de | deviantart


the-architect ist offline   Mit Zitat antworten
Alt 11.10.2004, 17:38   #3
TP-Junior
 
Registriert seit: Dec 2003
#404 macht alles soweit korrekt
ok wäre ne möglichkeit
aber wenn ich jetzt irgendwie 5000 user_ids habe und jedesmal die 15 raussuchen muss die nicht gelöscht werden sollen um dann alle anderen zu löschen stell ich mir ja stressig vor für den Server
#404 ist offline   Mit Zitat antworten
Alt 11.10.2004, 17:43   #4
TP-Veteran
 
Benutzerbild von the-architect
 
Registriert seit: Jun 2004
Ort: Stuttgart
the-architect bringt sich richtig einthe-architect bringt sich richtig ein
nee. du suchst ja nur die neuesten 15 (so hab ich dich verstanden) und das sollte kein problem sein.

dann "delete from fbb_profile_view where id!='id1' or id!='id2' ...", usw.
__________________
mein blog | imedo.de | clubrating.de | deviantart


the-architect ist offline   Mit Zitat antworten
Alt 11.10.2004, 17:52   #5
TP-Junior
 
Registriert seit: Dec 2003
#404 macht alles soweit korrekt
ne ich such die 15 neusten pro user_id
#404 ist offline   Mit Zitat antworten
Alt 11.10.2004, 17:58   #6
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
tu dir selbst einen Gefallen und erweitere die Tabelle um einen timestamp. Verwende dann diesen um die aktuellsten 15 zu verschonen.
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 11.10.2004, 18:34   #7
TP-Insider
 
Benutzerbild von loki
 
Registriert seit: May 2003
Ort: Aachen
loki ist auf einem guten Weg
Kann man nicht irgendwas mit LIMIT drehen?

also sowas wie

DELETE FROM tabelle ORDER BY ID DESC LIMIT 15,$anz
__________________
"Man muss die Welt nicht verstehen, man muss sich nur darin zurechtfinden."
Einstein

loki ist offline   Mit Zitat antworten
Alt 11.10.2004, 18:55   #8
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
wohl kaum, da er das pro ID haben will.
Also wird eine Query mal so aus dem Bauch raus eh net reichen. Dann kann er das gleich 'gscheid' machen.

ergo UserIDs gruppiert raussuchen und dann pro Userlein ein delete absetzen.

P.S. Mit dem timestamp bin ich halt auf der sicheren/sauberen Seite der Logik.
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 11.10.2004, 20:02   #9
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
Ab Version 4.0.0 kann man dem delete-statement ein order by mitgeben, was mit einem LIMIT zu schönen Ergenissen führen kann. Ob man dem LIMIT allerdings auch einen start-wert mitgeben kann, weiss ich nicht. -> http://dev.mysql.com/doc/mysql/en/DELETE.html

Gruss
Jan
Stuck Mojo ist offline   Mit Zitat antworten
Alt 11.10.2004, 20:57   #10
TP-Junior
 
Registriert seit: Dec 2003
#404 macht alles soweit korrekt
also limitieren an sich geht laut meiner tests

aber diese LIMIT 15,XX geschichte geht nicht


Zitat:
Zitat von mike
tu dir selbst einen Gefallen und erweitere die Tabelle um einen timestamp. Verwende dann diesen um die aktuellsten 15 zu verschonen.
den gibts schon (view_stamp)
#404 ist offline   Mit Zitat antworten
Alt 11.10.2004, 23:11   #11
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
aso. hat sich mir aufgrund des datentyps nicht gleich eröffnet
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
[SQL] alle löschen bis auf die aktuellsten 15 Einträge [SQL] alle löschen bis auf die aktuellsten 15 Einträge
« [mySQL] Problem mit insert into | virtual directories mittels mod rewrite? »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Anfänger] [Workshop] Formmailer mike Workshops und Tutorials 92 04.04.2008 14:32
Der Herr Bush TobiasKa Einfach so ... 15 07.12.2004 21:26
MySQL: alle einträge die mit 0 beginnen sf2006 Traum-Dynamik 7 24.09.2004 08:00
Tüv webmichl Einfach so ... 4 17.12.2002 18:36


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:54 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67