“mysql有多少搜索结果”帮助
Posted
技术标签:
【中文标题】“mysql有多少搜索结果”帮助【英文标题】:"how many search results from mysql" help 【发布时间】:2010-12-08 09:29:10 【问题描述】:我得到了一些关于从 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))
感谢大家的帮助
观察:我试图避免使用另一个 SELECT WHERE 子句... 有没有办法在没有其他搜索的情况下做我想做的事?
【问题讨论】:
您可以使用WHERE
子句(请参阅dev.mysql.com/doc/refman/5.0/en/select.html)指定查询结果必须匹配的某些条件。
【参考方案1】:
在您的查询中,您可以使用where
子句。 (select * from table 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 循环。
【讨论】:
是的,但问题是我想在 while 循环之前显示字段数... 更新参考使用mysql_data_seek【参考方案2】:有几种方法可以达到这个目的,要么对 MySQL 运行额外的查询,要么使用程序逻辑在迭代数组时计算你需要的内容。
从 MySQL 中获取行数是一项具有多种解决方案的任务。你可以盲目调用 SELECT count(*) FROM table WHERE foo = bar,或者使用数据库更高级的 SQL_CALC_FOUND_ROWS 变量。
如果你能更好地解释自己,我很乐意提供一个好的解决方案!
【讨论】:
【参考方案3】:观察:我试图避免使用另一个 SELECT WHERE 子句...有没有办法在没有另一个搜索的情况下做我想做的事?
我很好奇你为什么不想使用另一个 SELECT WHERE 子句?
根据我对您问题的解释,您要求获得给定查询的行数和唯一变量的计数?
例如:
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' 结果的查询?这会让你计算出你的“某些领域”。
如果我误解了你的问题,请再次纠正我。
【讨论】:
以上是关于“mysql有多少搜索结果”帮助的主要内容,如果未能解决你的问题,请参考以下文章