sqlite> select count(*) from authors;
1274360
sqlite> select count(*) from authors where length(Name)<1;
0
sqlite> select count(*) from authors where length(Name)>=1;
516738
以上没有意义。任何人都可以解释为什么第二个和第三个查询不能给我表中的所有行?
我知道没有一个名字在其中有NULL,但只是为了确保我查询它并且它也返回0
sqlite> select count(*) from authors where Name==NULL;
0
答案 0 :(得分:1)
以下查询为您提供作者总数
您表中的1274360
作者
sqlite> select count(*) from authors;
1274360
以下查询为您提供名称长度小于1并且您的查询给出0
计数的作者的总计数,因为在您的作者表中您没有名称长度小于的作者1 强>
sqlite> select count(*) from authors where length(Name)<1;
0
以下查询为您提供名称长度大于等于1并且您的查询给出516738
计数的作者的总计数,因为在您的作者表中您有这样的作者,其名称长度大于和等于1
sqlite> select count(*) from authors where length(Name)>=1;
516738
以下查询为您提供名称为空的作者的总计数
并且你没有任何作者,这就是你得到0
sqlite> select count(*) from authors where Name =NULL;
0
注意:对于Null检查你应该做这样的事情
sqlite> SELECT COUNT(*) FROM authors WHERE Name IS NULL;
/* to get count of all not null name use IS NOT NULL */
sqlite> SELECT COUNT(*) FROM authors WHERE Name IS NOT NULL;