【发布时间】:2018-05-13 09:22:28
【问题描述】:
我正在运行 MariaDB 版本 5.5.56,并且似乎遇到了一个错误:FOUND_ROWS() 在返回零行的 SELECT 之后返回“1”。
根据bug report 83110,MySQL 从 5.7.15 版开始就有这个问题,但似乎是一个已解决的问题,所以我认为它已修复。但是,我不确定 MySQL 和 MariaDB 版本号是如何关联的,或者对 MySQL 的修复是否适用于 MariaDB。
我的发行版的软件包包括 MariaDB 5.5.56 作为可用的最新版本。
我做错了吗?为什么前一个查询返回零结果时 FOUND_ROWS 返回 1? (是的,我确实在上一个查询中包含了 SQL_CALC_FOUND_ROWS 语句。
例子:
SELECT SQL_CALC_FOUND_ROWS * FROM table1
WHERE field = 'something that would not match any records' LIMIT 5;
SELECT FOUND_ROWS() as count_of_rows;
-- count_of_rows = 1
这可能是同一个错误,只是在 MariaDB 中未打补丁,还是您认为我做错了什么?
谢谢!
【问题讨论】:
-
你怎么看
count_of_rows的值? -
我 1)通过 php 中的查询获取值,2)作为测试,在 phpmyadmin 中同时运行这两个查询。
-
1) PDO 还是 mysqli?哈希还是数组? 2)它是否添加了
LIMIT? -
Mysqli,是的,有一个限制子句。
-
LIMIT有很大的不同;将其添加到问题中。
标签: mysql select mariadb sql-calc-found-rows