繁体   English   中英

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

[英]how to get total number of rows from mysql table?

我正在编写用于从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'的访问被拒绝”。 谁能告诉我如何实现这一目标。 提前致谢。

您确定您的表有73条记录吗? 还是只看了最高的ID? 中间可能有一些丢失的ID(已删除)。 该查询看起来很好,它应该可以工作。 请在phpMyAdmin中再次检查

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

select count(*) as total from myTable

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

 select count(id) as total from myTable

那么只会返回id字段不为NULL的那些行的计数。 因此,您的某些行的ID字段可能为NULL ,这就是查询返回的行数少于实际的原因。

SELECT COUNT(*) AS total_count FROM my_table_name

也许并非所有行都有id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM