为什么FOUND_ROWS()为5.7.17 SQL版本返回错误的结果?

时间:2018-03-22 06:32:42

标签: mysql sql sql-calc-found-rows

我在本地系统上运行了以下查询

SELECT FOUND_ROWS() FROM table_name LIMIT 1;
SQL Version : 5.6.16

它返回行数。

当在服务器上运行相同的查询(SQL版本:5.7.17)时,它返回0.

在互联网上搜索后,人们建议使用

  

SQL_CALC_FOUND_ROWS

所以我也在本地和服务器上使用了以下查询。

SELECT SQL_CALC_FOUND_ROWS * FROM users
SELECT FOUND_ROWS();

但是结果是一样的,它在本地(SQL版本:5.8.16)上工作正常,在服务器上返回0(SQL版本:5.7.17)。

1 个答案:

答案 0 :(得分:1)

这是一个mysql错误,可能导致此问题,具体取决于您使用的版本:

http://bugs.mysql.com/bug.php?id=1468

您可以在查询中使用GROUP BY子句来解决此问题。就我而言,它运作良好。