如果一个子查询为null,则Mysql查询返回null

时间:2014-09-20 13:31:08

标签: mysql subquery

我使用以PHP编写的子查询来使用以下查询。

$query = mysqli_query($mysqli, "select
         users.id as id,
         users.display_name as display_name,
         users.user_code as user_code,
         (select count(articles.id) from articles where articles.user_code = '$user_code') as user_article_count,
         (select count(comments.id) from comments where comments.user_code = '$user_code') as user_comment_count
         from users");

每当其中一个子查询与任何行匹配时,就会出现问题,整个查询返回null而不是仅为 user_article_count user_comment_count 返回null。

我该如何避免这种情况?

1 个答案:

答案 0 :(得分:0)

MS SQL有同样的问题,我使用ISNULL()函数解决它。 你在MYSQL中尝试过IFNULL()函数吗?

我在http://www.w3schools.com/sql/sql_isnull.asp找到了这个代码段。

在MySQL中你可以使用IFNULL()函数,如下所示:

SELECT ProductName,UnitPrice *(UnitsInStock + IFNULL(UnitsOnOrder,0))  来自产品

HTH, 乔