【问题标题】:Counting rows in mysql query计算mysql查询中的行数
【发布时间】:2013-10-28 22:43:00
【问题描述】:

我正在尝试计算在我正在进行的 wordpress 数据库查询中返回到 $data 的行数。见下文

$data = $wpdb->get_results($wpdb->prepare("SELECT * FROM table WHERE wordpress_id=%d",get_current_user_id()),ARRAY_A);

我似乎遇到的问题是使用准备好的语句。我想我可以写一个循环来遍历数组并计算它们,但是有没有更优雅的方法呢?

非常感谢。

【问题讨论】:

  • SELECT COUNT(*) FROM...。让数据库为您完成工作。无需为了计数而通过网络转储所有数据。
  • ^^ 或 count($data) 都会给你计数。
  • @xbonez 哇,这很简单非常感谢;这正是我想要的。随意把它放在一个正式的答案中,这样我就可以相信你了。

标签: php mysql wordpress prepared-statement


【解决方案1】:

如果您只需要计数,请将您的 SQL 查询更改为 SELECT COUNT(*) as count ...。这是有效的,因为计数将在数据库本身上完成,您不会通过网络获取所有数据。

但是,如果您同时需要数据和计数,请按原样获取数据,然后通过执行 count($data) 获取计数。

参考:count()

【讨论】:

  • 请记住,如果您想要一个 count 用于所有记录,并且只检索其中的一部分 - 您使用 count(*) 和 where(但没有 LIMIT)进行的第一次查询,以及检索的查询带有limit 和正确列名(或*)的数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-05
  • 1970-01-01
  • 2010-10-11
相关资源
最近更新 更多