ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
530
530
EMPFEHLEN
-
Hi,
ich habe eine MySQL Tabelle in der Logdaten gespeichert werden. Bei jedem Seitenaufruf auf meiner HP werden vom User die IP, die Zeit (als Linux-Timestamp) und die aktuelle Seite gespeichert. Jetzt will ich eine Online-Fuktionalität aufbauen und dazu wissen wo sich der User gerade befindet, ich will also mit einem SELECT-Befehl alle IP'S der letzten 3 Minuten mit den dazugehörigen Seiten und Zeiten. Also wenn die IP 172.123.45.32 vier Einträge in den letzten 3 Minuten hat, will ich nur den letzten und das von allen IP's die in den letzten 3 Minuten was gemacht haben.
Die Tabelle heißt : logs und die Felder: IP, Seite, Zeit
Kann mir jemand das zugehörige SELECT austüffteln?
Danke und Gruß
Major
-
versuche es mal mit
SELECT * FROM logs WHERE (Zeit-3Min) GROUP BY IP
(Zeit-3Min) musst Du noch auf den Linuxtimestamp anpassen. Ist das nicht möglich, füge noch ein Feld time mit getdate() ein und werte diese aus.
so long
CP
-
Hi,
leider bekomme ich damit noch nicht das richtige Ergebnis, weil ich will ja nicht die Einträge vor genau 3 Minuten sondern alle seit 3 Minuten (Zeit > (timestamp-180)) und davon nur die neuesten. Wenn ich die Abfrage so mache:
SELECT * FROM logs WHERE Zeit > (timestamp-3Min) GROUP BY IP
bekomme ich zwar die IP's, aber nicht die richtige (letzte) Zeit dazu.
Gruß
Major
-
01.04.04 19:42 #4
- Registriert seit
- Mar 2004
- Ort
- Tiefste Provinz
- Beiträge
- 304
Hallo,
das Problem hört sich einfach an, es ist aber recht tricky, den Feldinhalt eines bestimmten Datensatzes aus einer GROUP BY-Gruppe auszuspucken. Man muss MySQL ziemlich austricksen. Das könnte vielleicht so funktionieren:
Ist ein wildes Konstrukt. Die Formel verkettet den Timestamp mit der Spalte die ausgelesen werden soll, liefert den höchsten Wert dieser Verkettung und kappt dann den Timestamp wieder weg.Code :1 2 3 4 5 6 7 8 9 10
SELECT ip, SUBSTRING(MAX(CONCAT(RPAD(zeit, 12, ' '), seite)) ,13) AS seite, MAX(zeit) AS zeit FROM logs WHERE zeit >= DATE_SUB(NOW(), INTERVAL 3 MINUTE) GROUP BY ip
Vielleicht hilft's ja.
Grüße,
MartinGeändert von Resalb (01.04.04 um 22:12 Uhr)
-
Danke Dir Martin,
genau das war es, ist echt tricky
Ich hatte schon einen halben Tag damit verbracht, bis ich mich an die Foren wandte. Also nochmals herzlichen Dank und ein Bienchen an Dich.
Gruß
Major
Ähnliche Themen
-
Hilfe bei Select
Von Flashii123 im Forum PHPAntworten: 2Letzter Beitrag: 29.12.08, 15:20 -
hilfe bei select
Von tombo82 im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 09.10.07, 10:29 -
Hilfe bei MySQL Select mit VBS
Von BadMimi im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 15.08.07, 17:01 -
Hilfe zu SELECT abfrage
Von supersalzi im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 16.09.05, 19:13 -
Bräuchte Hilfe bei select sum()
Von splatterman im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 19.07.02, 20:10





Zitieren
Login





