“有多少来自mysql的搜索结果”有帮助

时间:2009-10-20 15:08:41

标签: php mysql

我得到了一些关于从mysql返回的行数的帮助,它工作得很好...... 但是,如何获得具有特定字段值的行数? 我是否必须创建一个新的Mysql搜索查询?

这是我使用fetch_array查询mysql并在表中显示的代码...另外,我使用mysql_num_rows来获取行数。 那么如何获得具有特定字段值的行数呢?

$qry_result = mysql_query($query) or die(mysql_error());
$num_rows = mysql_num_rows($qry_result);
while($row = mysql_fetch_array($qry_result))

感谢您的帮助

OBSERVE:我试图避免使用另一个SELECT WHERE子句...... 有没有办法在没有其他搜索的情况下做我想要的事情?

3 个答案:

答案 0 :(得分:1)

在您的查询中,您可以使用where子句。 (从表中选择*,其中column1 ='value')

另一种选择是在while循环中增加一个计数器变量:

$counter = 0;
while($row = mysql_fetch_array($qry_result))
{
    if($row[0] == "value")
       $counter++;
}

使用此计数器后,使用mysql_data_seek($qry_result, 0);重置结果集,然后继续使用原始while循环。

答案 1 :(得分:0)

有几种方法可以达到这个目的,要么针对MySQL运行额外的查询,要么使用程序逻辑来计算迭代数组时所需的内容。

从MySQL获取行数是一项具有多种解决方案的任务。你可以盲目地调用SELECT count(*)FROM table WHERE foo = bar,或者使用数据库的更高级的SQL_CALC_FOUND_ROWS变量。

如果你能更好地解释自己,我很乐意提供一个好的解决方案!

答案 2 :(得分:0)

  

OBSERVE:我试图避免使用另一个SELECT WHERE子句......有没有办法在没有其他搜索的情况下做我想要的事情?

我很好奇为什么你不想使用另一个SELECT WHERE子句?

根据我对您的问题的解释,您要求获得给定查询的行数AND,以及唯一变量的数量?

例如:

NAME  AGE
Joe   15
Simon 13
Simon 16
Joe   21
Mary  15
Joe   28

您的行数 6 ,您的点数(您要求的)将是:

Joe x 3
Simon x 2
Mary x 1

如果这就是您要问的问题,为什么不使用2个查询,1个用于您的数据集,另一个查询用于GROUP BY'name'并且只返回UNIQUE'name'结果?那会让你算上你的“某些领域”。

如果我理解了你的问题,那么再次纠正我。