下面是我用来获取数据库中照片总数的当前代码,估计的数字甚至可以接受,因为结果数仅用于确定我要上传到文件夹余额的文件夹号.
我觉得有一种更好的方式,然后我在下面使用?
$sql = 'SELECT auto_id FROM friend_user_photo';
$query = executeQuery($sql);
$rowcount = mysql_num_rows($query);
Run Code Online (Sandbox Code Playgroud)
$ rowcount返回friend_user_photo表中的记录数
更新:
没有办法读取有关数据库的信息.那可能比使用上面的方法或COUNT更快?
您也可以使用COUNT.
$sql = 'SELECT COUNT(*) FROM friend_user_photo';
$query = executeQuery($sql);
Run Code Online (Sandbox Code Playgroud)
这将返回包含结果数量的单行.这也是一个常规的聚合函数,所以你可以做连接,子查询,条件(WHERE),分组和所有好东西.
您也可以将其视为另一个字段,因此您可以对其进行别名,然后在您的连接和子查询中使用它.您还可以选择其他数据,例如:
$sql = 'SELECT COUNT(*), name FROM table GROUP BY name
Run Code Online (Sandbox Code Playgroud)
这将返回一个不同的名称列表,但也将包含每个名称的记录数.
编辑替代count()
如果您不想使用COUNT(*),您还可以使用'show table status'.例如:
$sql = "SHOW TABLE STATUS LIKE 'friend_user_photo'";
// Note, this LIKE is a regular LIKE, so wild cards can be used
Run Code Online (Sandbox Code Playgroud)
这将返回包含各种元数据(包括行)的行,但也包括密钥长度(以字节为单位)和数据长度(以字节为单位)以及许多其他数据.这通常也非常快,因为它只是将元数据拉为运行像COUNT(*)这样的聚合函数(只要表没有被当前正在运行的另一个查询锁定).