Mysql 选择isnull()为false的列

Mysql 选择isnull()为false的列,mysql,Mysql,我有一个查询,当我直接通过MySQL管理器运行它时,它可以工作,但是这个查询在我的应用程序中似乎不起作用 我已将问题确定为以下查询: SELECT task_id, member_id, SUM(NOT(ISNULL(completion_date))) AS complete, COUNT(id) AS total FROM classroom_task_data GROUP BY task_id, member_id 特别是总和(不是(ISNULL(完成日期)) 如果我将其更改为SUM(I

我有一个查询,当我直接通过MySQL管理器运行它时,它可以工作,但是这个查询在我的应用程序中似乎不起作用

我已将问题确定为以下查询:

SELECT task_id, member_id, SUM(NOT(ISNULL(completion_date))) AS complete, COUNT(id) AS total
FROM classroom_task_data
GROUP BY task_id, member_id
特别是
总和(不是(ISNULL(完成日期))

如果我将其更改为
SUM(ISNULL(completion\u date))
(删除
而不是
),则查询将在我的应用程序中工作。我不知道为什么会发生这种情况,但我想我不妨尝试一种不同的方法来获得我想要的结果

我也尝试了
SUM(不是ISNULL(完成日期))
,但没有成功。我还测试了
COALESCE
,但我无法让它工作

所以我想知道我如何写上面的不同,但仍然得到相同的结果

以下是完整的查询btw:

SELECT id, title, member_id, instruction, start_date, end_date, is_archived, is_published, classroom_id, user_id 
FROM (
   SELECT task_id, member_id, SUM(NOT(ISNULL(completion_date))) AS complete, COUNT(id) AS total
   FROM classroom_task_data GROUP BY task_id, member_id
)
AS td 
JOIN
classroom_tasks AS t ON td.task_id = t.id
WHERE complete = total AND classroom_id = 35;
Try不为空:

SUM( completion_date IS NOT NULL )

如果完成日期不为空,则此值将与完成日期之和相加,否则将与零相加

COALESCE(SUM(completion_date),0)

if语句将给出相同的结果

-完成日期为空时为0

-1当完成日期不为空时

SUM( if(completion_date IS NULL, 0, 1)) AS complete

也许你可以试一下

什么不起作用?语法错误?结果不正确?还是怎样你的桌子结构怎么样?也许完成日期定义被设置为非空?任何将此问题设置为关闭的人显然不理解我的问题。我不是问为什么这段代码不起作用,而是问除了编写
notisnull()
之外是否还有其他选择。。。。