我在蜂巢上有两张桌子。第一个称为“访问”,包含 apache 日志,其中第一个字段是完整的 ip 地址:
10.4.5.12 - - [26/Jun/2010:11:16:09 +1000] "GET /myportal/pageA HTTP/1.1"
10.4.41.2 - - [26/Jun/2010:11:18:09 +1000] "GET /myportal/pageB HTTP/1.1"
10.5.1.111 - - [26/Jun/2010:11:22:09 +1000] "GET /myportal/pageA HTTP/1.1"
192.10.4.177 - - [26/Jun/2010:11:22:41 +1000] "GET /myportal/pageC HTTP/1.1"
另一个叫做“客户端”,它包含一个 IP 范围的开头和一个字符串:
10.4 clientA
10.5 clientB
10.7 ClientC
我想按客户查找点击总数,并显示他们的名字。所以,我尝试像这样加入这两个表:
SELECT client.name, count(access.ip) FROM access JOIN client WHERE access.ip RLIKE client.ip GROUP BY client.name;
它可以工作,但对于clientA,我的apache日志的最后一个条目(192.10.4.177)也受到了打击,这是我不想要的。我想仅将 client.ip 与 access.ip 的开头进行比较。
我想一个特定的正则表达式......或者我的合成器是错误的......有人可以有一个想法吗?
提前致谢