Mysql 难以获得简单查询的计数
我有一张有1118条记录的桌子。在这些记录中有一个字段Mysql 难以获得简单查询的计数,mysql,count,Mysql,Count,我有一张有1118条记录的桌子。在这些记录中有一个字段标志,默认为空。其中556条记录的字段标志标记为true,而其余记录为NULL。 当我运行以下查询时: select count(*) from table_name where flag!='true' 我得到的结果是0。其中,实际结果应为1118-556,即562 我做错了什么 NULL从不与任何东西进行比较,甚至不能与另一个NULL进行比较 select count(*) from table_name where flag!='tr
标志
,默认为空。其中556条记录的字段标志
标记为true,而其余记录为NULL。
当我运行以下查询时:
select count(*) from table_name where flag!='true'
我得到的结果是0。其中,实际结果应为1118-556,即562
我做错了什么 NULL从不与任何东西进行比较,甚至不能与另一个NULL进行比较
select count(*) from table_name where flag!='true' OR flag IS NULL
或
这取决于除了true
(false
?)和null之外是否还有其他值
select
count(CASE WHEN flag = 'true' THEN flag END) AS truecount,
count(CASE WHEN flag = 'false' THEN flag END) AS falsecount
count(*) - count(flag) AS NULLCount
from
table_name
最后,查看这些以了解COUNT和null/notnull值
SELECT COUNT(*) FROM TABLE_NAME WHERE flag IS NULL
使用tinyint定义bool case字段以及1和0,0表示null case,1表示true。工作起来很有魅力。非常感谢你的帮助。非常感谢:)
SELECT COUNT(*) FROM TABLE_NAME WHERE flag IS NULL