MySQL—使用WHERE或HAVING子句中的结果,从每行的两列计算一个值
我有一个MySQL db模式,如下所示:MySQL—使用WHERE或HAVING子句中的结果,从每行的两列计算一个值,mysql,sql,select,division,Mysql,Sql,Select,Division,我有一个MySQL db模式,如下所示: id flags views done ------------------------------- 1 2 20 0 2 66 100 0 3 25 40 0 4 30 60 0 ... thousands of rows ... 我想更新其标志/视图>=0.2的所有行。首先,作为一个测试
id flags views done
-------------------------------
1 2 20 0
2 66 100 0
3 25 40 0
4 30 60 0
... thousands of rows ...
我想更新其标志/视图>=0.2的所有行。首先,作为一个测试,我想尝试选择查看实际更新了多少行。我试过:
SELECT flags/views AS poncho FROM mytable HAVING poncho > 0.2
但这只返回2行,我知道应该还有更多。它似乎在计算所有行的雨披值或其他奇怪的东西。我做错了什么
谢谢 使用
WHERE
子句,而不是have
:
SELECT flags/views AS poncho FROM mytable WHERE flags/views > 0.2
HAVING
将所有相同的值聚合到一行中。SQL标准不允许拥有
子句而没有相应的GROUP BY
,但MySQL对该标准非常宽容。你所拥有的实际上与
SELECT flags/views AS poncho
FROM mytable
GROUP BY poncho
HAVING poncho > 0.2
更多信息请参见手册。使用
WHERE
子句,而不是have
:
SELECT flags/views AS poncho FROM mytable WHERE flags/views > 0.2
HAVING
将所有相同的值聚合到一行中。SQL标准不允许拥有
子句而没有相应的GROUP BY
,但MySQL对该标准非常宽容。你所拥有的实际上与
SELECT flags/views AS poncho
FROM mytable
GROUP BY poncho
HAVING poncho > 0.2
手册中有更多信息。您知道应该有,但数据库显示有2个。你有没有考虑过结果集中哪里的标志或视图为null=>flags/views=null=>不在你的结果集中。啊,是的,显然另一个查询关闭了更多可能的标志,所以我认为结果是匹配比我预期的要少得多-oops。你知道应该有,但数据库说有2个。你有没有考虑过结果集中哪里的标志或视图为null=>flags/views=null=>不在你的结果集中。啊,是的,显然另一个查询关闭了更多可能的标志,所以我认为结果是,匹配比我预期的要少得多-oops。