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

hu7*_*7sy 5 mysql sql sql-calc-found-rows

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

SELECT FOUND_ROWS() FROM table_name LIMIT 1;
SQL Version : 5.6.16
Run Code Online (Sandbox Code Playgroud)

它返回行数.

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

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

SQL_CALC_FOUND_ROWS

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

SELECT SQL_CALC_FOUND_ROWS * FROM users
SELECT FOUND_ROWS();
Run Code Online (Sandbox Code Playgroud)

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

小智 1

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

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

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