Группировать строки с одинаковым значением в определенном столбце - PullRequest
0 голосов
/ 11 января 2011

У меня есть таблица с именем visitors со следующими значениями:

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

Есть ли способ сгруппировать их по IP при использовании select и получить что-то вроде:

IP 98.112.43.45

  • 5-секундный визит 2011-01-11 14: 00: 10
  • 1040 второй визит 2011-01-11 11:49:00
  • 188 Второе посещение 2011-01-11 12: 06: 23

IP 192.150.3.7

  • 2второе посещение 2011-01-11 12: 06: 38

Ответы [ 2 ]

1 голос
/ 11 января 2011

В SQL все возвращаемые строки имеют одинаковую структуру столбцов.Таким образом, вы не можете создать этот контурный вид непосредственно из SQL.Но если вы просто отсортируете строки по IP и DATE (ORDER BY IP, Date), вы получите четыре нужных вам строки в более или менее желаемом порядке.Затем вам необходимо представить их в виде схемы в генераторе отчетов или на веб-странице с использованием кода.

Единственная проблема с сортировкой, с которой вы столкнулись, заключается в том, что для получения именно указанного вами порядка вам потребуется разобратьIP-адреса в четыре целых числа и ORDER BY эти четыре целых числа.

0 голосов
/ 11 января 2011
SELECT * FROM `visitors` ORDER BY ABS('ip')

Это правильно отсортирует IP-адрес. Затем в зависимости от того, какой язык вы используете, вы можете отобразить другие данные. Я мог бы привести примеры в PHP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...