我正在编写代码来获取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'”。任何人都可以告诉我如何实现这一目标。提前谢谢。
答案 0 :(得分:0)
答案 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