HAVING COUNT条件不起作用

时间:2018-01-07 17:39:55

标签: php mysql sql

[Attributes].[Personal Data Categories]

我的PHP网站上有这个代码,当我使用有计数时,我发现计数不会比较$rech=$_bdd->query('select distinct num_carte,type_seance,nom_module from absence,seance,absence_justification,module where absence.id_absence=absence_justification.id_absence AND absence.id_seance=seance.id_seance AND seance.id_module=module.id_module GROUP BY num_carte,type_seance,nom_module having count(jus_admin="non")>4 '); 。它忽略条件,所以他只计算jus_admin的数量并返回结果 我不明白他为什么忽视这个条件!!!!!!!

1 个答案:

答案 0 :(得分:3)

count()计算非NULL值的数量。 MySQL中的布尔值通常为0或1。

所以,你的逻辑:

having count(jus_admin = 'non') > 4
如果NULLjus_admin,则

仅返回NULL。这相当于:

having count(jus_admin) > 4

如果永远不会NULL,那么它将与:

相同
having count(*) > 4

我认为您需要sum()而不是count()

having sum(jus_admin = 'non') > 4

这将要求返回的每个组至少有五个'non'值。