获取sql结果集的单个值

时间:2011-05-30 21:37:06

标签: php sql

考虑这个SQL查询

$sql = "select count(*) as count from table where value='this'";

此查询将仅返回字段count中的一个值。

有没有办法在不使用fetch_array的情况下获取该值并指向返回数组的第一个值?

3 个答案:

答案 0 :(得分:2)

mysql_result()将允许您直接从结果集中提取值,而无需使用 fetch 方法。这是一个非常简单的示例,说明如何使用它来获取单个值:

mysql_select_db( "mysql", mysql_connect( "localhost", "root", "" ) );
$r = mysql_query( "SELECT count(name) as total FROM `help_keyword`" );
echo $r ? mysql_result( $r, 0 ) : mysql_error() ; // Outputs 450

mysql_result()函数有三个参数;第一个是结果集本身,第二个是行索引,第三个是字段索引。我只使用前两个参数,因为第三个参数默认为0,第一个字段返回。

答案 1 :(得分:1)

作为一个sql初学者,我也浪费了很多时间来尝试直接使用sql查询的这些一维结果。我认为既然结果不是数组,我可以跳过这些带有fetch_arrays的while循环。

然而,只是现在我才意识到虽然结果可能是8的整数值,但只要你不将它转换为它的值,它仍然被认为只是一个'查询结果'而不是整数。

Jonathan的代码帮助我意识到了这一点。对于我自己,我使用了一个稍微不同的代码来帮助我。这对我有用:

$con=mysql_connect("host", "user", "password");

if(!$con)
    {die('could not connect: '.mysql_error());
    }
$db_selected=mysql_select_db("database", $con);

$sql = "the sql query that yiels one value, for example a SELECT COUNT query";

$outcome_considered_as_a_query-result-set = mysql_query($sql,$con);

$outcome_considered_as_the_one_element_of_the_result_set = mysql_result($outcome_considered_as_a_query-result-set,0);

echo $outcome_considered_as_the_one_element_of_the_result_set;

mysql_close($con);

答案 2 :(得分:0)

使用:mysql_num_rows

$count = mysql_num_rows(mysql_query($sql);

在这种情况下,不要使用计数。选择一切,这将计算它。