如何从mysql表中获取总行数?

时间:2017-02-20 07:08:20

标签: php mysql count

我正在编写代码来获取mysql表(存储引擎:InnoDB)中的记录总数并在前端显示。我正在使用COUNT(id),如下所示:

SELECT COUNT(id) AS total_count FROM my_table_name

但是我的总数减少了6行,即我总共有73个记录,但我只得到67个记录作为总计数。我搜索其他解决方案,我找到了一个解决方案,如下所示:

SHOW TABLE STATUS FROM my_table_name;

但它正在抛出mysql访问被拒绝错误,例如“用户'访问被拒绝'my_user_name'@'localhost'到数据库'my_table_name'”。任何人都可以告诉我如何实现这一目标。提前谢谢。

3 个答案:

答案 0 :(得分:0)

你确定你的桌子有73条记录吗?或者你只看最高的身份证?中间可能存在一些缺失的ID(已删除)。查询看起来很好,它应该工作。请再次访问phpMyAdmin

答案 1 :(得分:0)

mysql count函数将返回所有行,如果使用参数*调用,如下面的

select count(*) as total from myTable

但是如果您提供表格的任何列名称,如

 select count(id) as total from myTable

然后只返回那些id字段不是 NULL 的行的计数。因此,您的某些行可能有 id 字段 NULL ,这就是查询返回的行数小于实际值的原因。

答案 2 :(得分:-1)

SELECT COUNT(*) AS total_count FROM my_table_name

可能并非所有行都有id