首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL:带条件值的行计数

问MySQL:带条件值的行计数
EN

Stack Overflow用户
提问于 2016-02-28 22:59:29
回答 2查看 302关注 0票数 0

我想知道有多少用户正在登录,以及他们有多少失败和成功。

category列是varchar (前程序员的愚蠢之处),而值只有1或0。

如果1表示成功,如果0表示失败。

代码语言:javascript
复制
$loginForced = " SELECT
                    Count(categori) AS login,                       
                    Count(CASE WHEN categori = '1' THEN categori ELSE 0 END) AS success,                        
                    Count(CASE WHEN categori = '0' THEN categori ELSE 0 END) AS fail                        
                 FROM 
                    log
                 WHERE  email = '".$personal."' "; 
EN

回答 2

Stack Overflow用户

发布于 2016-02-28 23:02:41

将sum与条件一起使用:

代码语言:javascript
复制
$loginForced = "select count(`categori`) as `login`,                       
                       sum(`categori` = '1') as `success`,                        
                       sum(`categori` = '0') as `fail`                        
                from `log`
                where `email` = '".$personal."' "; 
票数 3
EN

Stack Overflow用户

发布于 2016-02-28 23:02:04

您可能只想跳过CASE表达式中的ELSE:

代码语言:javascript
复制
SELECT Count(categori) AS login,                       
       Count(CASE WHEN categori = '1' THEN categori END) AS success,                        
       Count(CASE WHEN categori = '0' THEN categori END) AS fail                        
FROM log
WHERE  email = '".$personal."' "; 

COUNT考虑了所有非null值,所以使用ELSE 0基本上是没有意义的,因为0将和其他值一样被计算。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35684061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档