某列中具有相同值的组行

时间:2011-01-11 20:37:17

标签: mysql sql

我有一个名为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

使用select时是否可以通过IP对它们进行分组,并得到类似的内容:

IP 98.112.43.45

  • 2011-01-11 14:00:10 5秒访问
  • 1040第二次访问2011-01-11 11:49:00
  • 188次访问2011-01-11 12:06:23

IP 192.150.3.7

  • 2011-01-11 12:06:38 2秒访问

2 个答案:

答案 0 :(得分:1)

在SQL中,您获取的所有行都具有相同的列结构。因此,您无法直接从SQL生成该大纲视图。但是,如果您只是按IP和DATE(ORDER BY IP,日期)对行进行排序,您将获得所需的四行或多或少的所需顺序。然后,您需要使用代码在报表生成器或网页中将它们显示为大纲。

您唯一的排序问题是,为了获得您指定的顺序,您需要将IP地址反汇编为四个整数值并按顺序排列这四个整数。

答案 1 :(得分:0)

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

这将正确排序IP地址。然后根据您使用的语言,您可以显示其他数据。我可以在PHP中提供示例