2011-01-11 7 views
0

Ich habe eine Tabelle visitors mit den folgenden Werten genannt:Gruppe Zeilen mit demselben Wert in einer bestimmten Spalte

id ip    date     time 
1 98.112.43.45 2011-01-11 14:00:10  5 
2 98.112.43.45 2011-01-11 11:49:00  1040 
3 192.150.3.7 2011-01-11 12:06:38  2 
4 98.112.43.45 2011-01-11 12:06:23  188 

Gibt es eine Möglichkeit, sie durch IP-Gruppe, wenn wählen Sie mit und nutzen Sie so etwas wie:

IP 98.112.43.45

  • 5 zweiter Besuch auf 2011.01.11 14.00.10
  • 1040 zweiter Besuch auf 2011-01-11 11:49:00
  • 188 zweiten Besuch auf 2011-01-11 12:06:23

IP 192.150.3.7

  • 2 Sekunden Besuch am 2011-01-11 12:06:38
+2

was ist falsch mit "... ORDER BY ip"? – davin

Antwort

1

In SQL haben alle Zeilen, die Sie zurück erhalten, die gleiche Struktur von Spalten. Sie können diese Gliederungsansicht nicht direkt aus SQL erstellen. Aber wenn Sie die Zeilen einfach nach IP und DATE (ORDER BY IP, Date) sortieren, erhalten Sie die vier gewünschten Zeilen mehr oder weniger in der von Ihnen gewünschten Reihenfolge. Sie müssen sie dann als Gliederung in einem Berichtsgenerator oder auf einer Webseite mit Code darstellen.

Das einzige Sortierproblem, das Sie haben, ist, dass Sie die IP-Adressen in vier Integer-Werte zerlegen und ORDER BY diese vier Ganzzahlen zerlegen müssen, um genau die von Ihnen angegebene Reihenfolge zu erhalten.

0
SELECT * FROM `visitors` ORDER BY ABS('ip') 

Dies wird die IP-Adresse richtig sortieren. Je nachdem, welche Sprache Sie verwenden, können Sie die anderen Daten anzeigen. Ich könnte Beispiele in PHP geben

+0

Sind Sie sicher, dass ABS das tut? –

+0

normale Sortierreihenfolge wird wie folgt sortiert: 1, 102, 2, 245, 546, 6 ETC. Reihenfolge von ABS wird es durch den absoluten Wert bestellen. Ich kann nicht sicher sagen, ob ABS die IP-Adresse mit den Perioden sortiert. In diesem Fall könnten Sie die Perioden einfach aus der Zeichenfolge entfernen. – MSD

Verwandte Themen