2015-07-01 46 views
-2

我需要一些帮助。PHP数据如果数据不为空

我想计算一些列,但我的查询计数不正确。

SELECT COUNT(*) AS zero_count FROM messages WHERE uid_fk = '$uid' AND uploads IS NOT NULL AND uploads <>'' AND option = '1' 

计数上传值,如果上传的值不为空,并检查选项=“1”

所以如果上传值不为空,并选择= 1,那么指望它。

例如:

uid_fk  uploads   option 

    1    75,    0  Not counting because secret_option is 0 
    1   76,77,   1  Count because it is 1 and upload value is not empty 
    1        1  Not count because upload value is empty 
    1    78,    1  Count because it is 1 and upload value is not empty 
    1        1  Not count because upload value is empty 
    1   79,80,   0  Not count because option is 0 

我查询计数所有选项= 1只,但它需要数:

如果上传的值不为空,并选择是1,那么指望它。

什么我需要做的查询计数上传不空和选项= 1任何人都可以在这方面帮助我?

+0

您是在计数行还是在上传列中添加值? – Robert

+0

@robert我想计数,如果上传值不为空,选项= 1。 – innovation

+0

你需要什么SUM或COUNT? –

回答

2

下面的查询可能会工作得很好,只要确保你能获得正确的值在$uid

SELECT 
    COUNT(*) 
FROM `messages` 
WHERE TRIM(IFNULL(`uploads`, '')) != '' AND `option` = '1' AND `uid_fk` = '$uid' 
+0

请[CLICK](https://scontent-fra3-1.xx.fbcdn.net/hphotos-xap1/v/t1.0-9/11222012_131358750530626_7858393301678559190_n.jpg?oh=0039d590fa22fb042945aacb0249a351&oe=562D1871)此链接的截图。 – innovation

+0

和你正在得到什么? –

+0

我越来越11 – innovation

0

你需要引号option其保留字。

SELECT COUNT(*) AS 'zero_count' 
FROM `messages` m 
WHERE `option` <> 0 
    AND (`uploads` IS NOT NULL AND `uploads` <> '') 
    AND uid_fk = $uid; 
+0

感谢您的回答。但它是相同的结果,在这个问题你可以看到uid_fk = 1发布6帖子,但一些帖子没有上传(空)。所以你的答案给了我同样的结果,它显示4但我需要2。 – innovation

+0

使用上面的示例数据我得到2.如果$ uid是一个整数,它不需要引号。 – Robert

相关问题