我有一个像这样的MySQL数据库模式:
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以查看实际更新的行数。我试过了:
SELECT flags/views AS poncho FROM mytable HAVING poncho > 0.2
但是这只会返回2行而我知道应该有更多。看起来它正在计算所有行上的poncho值或奇怪的东西。我做错了什么?
谢谢!
答案 0 :(得分:1)
使用WHERE
子句代替HAVING
:
SELECT flags/views AS poncho FROM mytable WHERE flags/views > 0.2
HAVING
将所有相同的值聚合到一行中。 SQL标准不允许HAVING
子句没有相应的GROUP BY
,但MySQL对标准非常宽松。你有什么实际上和
SELECT flags/views AS poncho
FROM mytable
GROUP BY poncho
HAVING poncho > 0.2
手册here中的更多内容。