我得到了一些关于从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子句...... 有没有办法在没有其他搜索的情况下做我想要的事情?
答案 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'结果?那会让你算上你的“某些领域”。
如果我理解了你的问题,那么再次纠正我。