-1

嗨,我正在尝试计算特定行大于 0 的表。如果表(请求)的行(rq_stamp)大于 0,则应该计算/选择它。

这是我到目前为止得到的,但我总是得到 1。($num_rows 总是 1)。

    $rq_notice = mysql_query("SELECT * FROM requests WHERE rq_poster = '$rq_notice_user' HAVING COUNT(rq_stamp) > 0 ") or die(mysql_error());   
if(mysql_num_rows($rq_notice) > 0 )
{
    $num_rows = mysql_num_rows($rq_notice);
    echo $num_rows;
}

感谢您提供的任何帮助,如果之前已经回答了该问题,但我在搜索时找不到它,我很抱歉。

4

2 回答 2

0

通过使用COUNT(),您将聚合引入到您的查询中,这似乎没有必要。如果您只是想确定 的值rq_stamp是否大于 0,请执行以下操作:

SELECT * FROM requests WHERE rq_poster = '$rq_notice_user' AND rq_stamp > 0 
于 2013-01-14T16:42:11.190 回答
0

我认为您确实误解了 count 的作用;)

你在这里写的是一个查询。换句话说,您正在派人搜索数据。您将得到的正是您在 SELECT 部分中定义的内容。

如果按特定列分组,Count 是一个可以使用的函数。您可以在此处对存储照片及其上传者的表设置查询。使用count您现在可以获得每个上传者上传的照片数量。更多示例:http ://dev.mysql.com/doc/refman/5.1/en/counting-rows.html

我想你想做这样的事情:

SELECT * FROM requests WHERE rq_poster = '$rq_notice_user' AND rq_stamp > 0 

只需获取海报为 X 且时间戳 > 0 的所有请求。使用 PHP,您现在可以检查收集了多少行,您可以使用 mysql_query 获取行。http://php.net/mysql_query

But please use mysqli or PDO instead of mysql. I'm here just talking about the functions you use in PHP. The PHP-extension mysql is deprecated since PHP 5.5 and you shouldn't use something, you now know of, will be removed. If you ask, why it is deprecated: http://de2.php.net/manual/en/faq.databases.php#faq.databases.mysql.deprecated

于 2013-01-14T16:50:44.287 回答