我运行查询并获得结果集。我需要从这个结果集中获取第n条记录。我有什么想法可以做到这一点吗?
我无法直接从数据库中选择第n条记录因为我需要对其进行过滤,并且不知道结果集中有多少条记录。所以我无法确定将哪个数字传递给mysql_result方法,即
基本思路是根据设定条件获取所有结果,并从中获取随机结果。
有什么想法吗?感谢。
答案 0 :(得分:0)
你的问题似乎不清楚。不过这是一个猜测:
您想要选择中间的记录:
$count = mysql_num_rows($result);
$middle_name = mysql_result($result, intval($count/2), 'name');
除此之外,如果你的记录真的少了,你也可以这样做:
$rs = array();
while ($row = mysql_fetch_assoc($result)){
$rs[] = $row;
}
然后您可以使用$rs[N-1]
来达到第N条记录。
如果您只获取一条记录,请从PHP手册中阅读mysql_data_seek
。
答案 1 :(得分:0)
基本思想是根据设定的条件获得所有结果,并从中获得随机结果。
SELECT ... ORDER BY RAND() LIMIT 1
我知道这不是最佳做法,但由于给定的信息相当稀疏,这可能是进一步阅读的起点。说实话,在一个足够小的应用程序中,这通常是最简单的解决方案。