gpt4 book ai didi

php - 同时使用 count(*) 和 mysql_fetch_object()?

转载 作者:行者123 更新时间:2023-11-30 23:55:25 24 4
gpt4 key购买 nike

我想对所有行进行计数,同时像往常一样列出它们,使用 mysql_fetch_object。我想我会做这样的事情;

$total = mysql_query("SELECT *, COUNT(*) AS totalfound FROM img WHERE state='0'");

但我似乎无法全神贯注于如何获取值 - 当我运行它时,我只是获取了表中的第一项;

while ($record = mysql_fetch_object($total)) { echo $record->id; }

如果我想得到总数,我可以这样做;

$result = mysql_fetch_assoc($total);
$count = $result['totalfound'];

...但是我无法得到其余部分。我知道我想错了,但似乎无法让它发挥作用。你们能帮帮我吗?谢谢!

有一件事我忘了提:mysql_num_rows 太慢了,我正在考虑改用 count(*)。例如,整个表上的 mysql_num_rows 需要 3 到 9 秒,而 count(*) 总是需要 0.6 秒,得到相同的结果。

最佳答案

count 是一个聚合函数,如果不使用 group by 就不能同时选择行和聚合。 MySQL 允许您在没有 group by 的情况下执行此操作,并且会产生不可预知的结果。

只需使用不带count 的查询来获取行,并对结果使用mysql_num_rows()

编辑:如果 mysql_num_rows() 很慢,您一定返回了很多行。然后最好执行两个查询,一个简单地 select count(*) as numrows ...,另一个用于检索数据。

尝试添加适当的索引,count(*) 将在几毫秒内执行。

您真的不希望在一个查询中使用这个。每行都会有一个列,说明有多少行,这与该行无关。

关于php - 同时使用 count(*) 和 mysql_fetch_object()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8164341/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com