0

我有一个访问过的人的统计数据库。此表包含 ID、时间戳 IPv4、IPv6、用户代理和 REQUEST_URI。我通过运行类似的东西得到错误的数字

SELECT COUNT(DISTINCT IPv4) AS 'Uniques', COUNT(*) AS 'Total' FROM statistics

所以我需要从人类中过滤掉机器人。我的方法是这样的:

SELECT ID FROM statistics WHERE NOT EXISTS(SELECT ID FROM statistics WHERE useragent NOT LIKE '%bot%')

这应该从搜索非机器人的查询中不存在的统计信息中选择所有行。我认为查询看起来很合理,为什么它不起作用?

我想这样做是有原因的,而不是

SELECT ID FROM statistics WHERE useragent LIKE '%bot%'

有任何想法吗?

4

1 回答 1

1

我有点困惑,但也许你想做:

SELECT ID FROM statistics 
WHERE ID NOT IN (SELECT ID FROM statistics WHERE useragent NOT LIKE '%bot%')
于 2012-10-02T10:00:44.663 回答