作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个表:
proxies_meta
代理
proxies_meta 就像所有 ip 地址所在的地方,而 proxies 获取条目或在使用来自 proxies_meta 的 ip 时更新。
现在,在特定的一天,我必须选择一个尚未被禁止的代理 IP,即 status = 0
并且 hits
每天不超过 10。到目前为止我试过了但没有用
select pm.ip_address as IP,sum(p.hits) as total_hits
from proxies_meta as pm
LEFT JOIN proxies as p
ON p.ip_address = pm.ip_address
AND pm.`current_status` = 0
AND date(p.updated_at) = '2017-06-23'
GROUP BY IP
having total_hits < 11 OR total_hits is NULL
只要状态为 0
或 proxies
中没有记录,此查询就有效。如果 current_status
和 status
从 0
更改为 -1
然后它仍然选择因为 LEFT JOIN
我如何确保我不会获得不需要的 IP 地址并且它还会检查每天的总点击量?
最佳答案
我认为你只需要将当前状态的条件移动到 where
子句中:
select pm.ip_address as IP, sum(p.hits) as total_hits
from proxies_meta pm left join
proxies p
on p.ip_address = pm.ip_address and
date(p.updated_at) = '2017-06-23'
where pm.current_status = 0
group by pm.ip_address
having total_hits < 11 or total_hits is null;
left join
保留第一个表中的所有行,无论 on
子句的计算结果是 true、false 还是 NULL
。因此,第一个表中的条件不会过滤任何内容。对于实际过滤,第一个表的条件需要在 where
子句中。
关于mysql - 无法过滤掉记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44719233/
我正在编写一个快速的 preg_replace 来从 CSS 中删除注释。 CSS 注释通常有这样的语法: /* Development Classes*/ /* Un-comment me for
使用 MySQL,我有三个表: 项目: ID name 1 "birthday party" 2 "soccer match" 3 "wine tasting evening" 4
我是一名优秀的程序员,十分优秀!