![](/img/trans.png)
[英]mysql select query result is null so how can i return default value in php
[英]MySQL - SELECT default value if null
这是我正在使用的查询:
SELECT (COUNT(`pass` = 0) / COUNT((`pass` = 0) + (`pass` = 1))) AS `PassRate` from `quiz_results`
我试图获得通过测验的人的百分比,但问题是如果没有人通过测验,则返回NULL
。 我试图弄清楚如何在NULL
的情况下返回0
。
我试过使用ISNULL
但我没有任何运气。
我遇到的另一个问题是,如果没有人未通过测验,则该值始终为零。 所以我的两个问题如下:
COUNT(
pass =0)
返回 0 时返回 100。不幸的是,我对 SQL 并不是那么好,而且我有点难住了。 我正在通过 PHP 访问 MySQL。 我在这里添加了它,因为我不知道它是否会改变任何东西。
我正在使用随 XAMPP 一起安装的 SQL(PhpMyAdmin 附带)
首先,你不想要COUNT()
,你想要SUM()
:
SELECT (SUM(`pass` = 0) / SUM((`pass` = 0) + (`pass` = 1))) AS `PassRate`
FROM `quiz_results`
表达式COUNT(pass = 0)
和COUNT(pass = 1)
总是返回完全相同的数字,这相当于COUNT(pass)
。 COUNT()
只是查看表达式是否为NULL
。
然后,您可以将其替换为AVG()
,可能是:
SELECT AVG(pass = 0) -- Should this be `pass = 1` ?
FROM quiz_results;
而且,如果您仍然得到不需要的NULL
值:
SELECT COALESCE(AVG(pass = 0), 0) -- Should this be `pass = 1` ?
FROM quiz_results;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.