1

如何检查带有 max() 等 sql 函数的查询是否返回 NULL ?这是我的代码:

$query = mysql_query("SELECT MAX(priority) FROM categories") or die('sel_pri:'.mysql_error());

    if(mysql_num_rows($query) > 0)
            $max_pri = mysql_result($query, 0) or die('priority:'.mysql_error());
    else
        $max_pri = 0;

我的类别表是 epmty,因此mysql_num_rows()将返回 1,因为此查询将返回 1 行,其值为 NULL。上面的代码“死”了!我也试过:

if(empty($query))   
if(isset($query))
if(is_null($query))

但以上都没有工作。

4

3 回答 3

0

我有类似的问题,我用以下方法解决了它......

如果(mysql_num_rows($query)>0){

如果(!空($查询)){

       $max_pri = mysql_result($query, 0);

  } else

  {

       $max_pri = 0;

   }

}

于 2013-04-05T18:40:09.483 回答
0

在您的情况下,您也可以在 SQL using 中提供默认值coalesce,它返回其参数的第一个非空值:

SELECT COALESCE(MAX(priority), 0) FROM categories
于 2013-04-05T20:50:37.380 回答
0

我更喜欢 IFNULL 函数,它听起来更相关。

SELECT IFNULL(MAX(priority),0) FROM categories
于 2014-09-16T06:51:53.470 回答