问题标签 [sql-calc-found-rows]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
247 浏览

php - 带有 HAVING 语句的 Mysql FOUND_ROWS

编辑:事实证明,代码似乎正在按预期运行。这只是一个调试问题。不好意思,打扰了!

我正在运行一个涉及多个过滤器和 JOIN 的大型查询,并且我正在对结果进行分页,因此查询运行了两次。

我尝试使用SQL_CALC_FOUND_ROWS以避免两次运行查询,但由于我使用HAVING语句进行过滤,因此在“有语句”之前得到了未过滤的总数。我需要运行,HAVING因为原始查询依赖于计数的东西——我知道这很糟糕,但我现在没有修改数据库结构的权限。

我的 SQL 的一个想法:

当我运行新的 SQL 查询时, SELECT FOUND_ROWS() as total_rows我得到了全部的u.idROWS 而不是过滤的。(这只发生在HAVING语句中,而不是WHERE子句中)

0 投票
1 回答
294 浏览

mysql - 使用函数 FOUND_ROWS() 的问题与连接给出错误的结果

这是我的查询。

接受的结果是total:344,我得到了total:1

我已经执行了这个查询,我得到了正确的结果。

total:1313

我在做什么错?仅供参考,我不能中断查询,即首先执行

选择 SQL_CALC_FOUND_ROWS

并执行

选择 FOUND_ROWS()

非常需要帮助..

编辑

我已更改查询并使用 count(*) 函数。现在我得到了正确的总数:344,但它只返回一行。现在有人可以指导我吗?

我已经在 MSSQL 中使用 COUNT(*) OVER() 进行查询,由于需求更改,我必须将 MSSQL 查询转换为 MYSQl。结果我这样接受这个

0 投票
1 回答
124 浏览

c# - MySqlDataReader 没有读取我的查询,就好像没有返回行但 PHPMyAdmin 返回具有相同查询的行

第一次在这里请求您的帮助。

我知道我的标题是错误的,如果我们弄清楚问题出在哪里,我会改变它,此刻我有点迷茫。

好吧,我们首先要从我的数据库中选择当前用户范围内的所有用户。

如果我执行查询,它会从 PHPMyAdmin 返回 4 行,哦,我应该提到我正在使用 MariaDB

这是查询:

现在从 C# 这里看起来如何:

ExecuteQuery 函数代码:

请注意循环 while(reader.read()) ... 永远不会“触发”,就好像它们没有与查询匹配的行一样。

现在我有点失去了我应该做些什么来解决这个问题,欢迎所有帮助!

非常感谢你的帮助 :)

0 投票
1 回答
187 浏览

powerbuilder - 无法理解有关 powerbuilder 11.5 的 SQLCA 的代码行

因为 SQLCA 是一个内置对象,我在我的程序中找不到它,我也找不到of_init_inifile()函数,我在哪里可以找到它?如何?在我的程序(powerbuilder 11.5)中,我看到了这样的一行:

我的 powerbuilder 版本是 11.5

0 投票
2 回答
1960 浏览

php - 带有 FOUND_ROWS 的 SQL_CALC_FOUND_ROWS 始终返回 1


上述查询总是为找到的行结果为 1。我正在使用 php 7.1 和 maria db 10.1 。

我的后端是 laravel 5.5,我正在 mysql 上发出 DB::raw 请求。服务器 apache 灯服务器。

这是一个错误还是有一些解决方法?

0 投票
1 回答
1120 浏览

mysql - 即使没有返回行,MySQL/MariaDB FOUND_ROWS 也会返回 1

我正在运行 MariaDB 5.5.56 版并且似乎遇到了一个错误: FOUND_ROWS() 在返回零行的 SELECT 之后返回“1”。

根据错误报告 83110,MySQL 从 5.7.15 版开始就有这个问题,但似乎是一个已解决的问题,所以我认为它已修复。但是,我不确定 MySQL 和 MariaDB 版本号如何关联,或者对 MySQL 的修复是否适用于 MariaDB。

我的发行版的软件包包括 MariaDB 5.5.56 作为可用的最新版本。

难道我做错了什么?为什么前一个查询返回零结果时 FOUND_ROWS 返回 1?(是的,我在前面的查询中确实包含了 SQL_CALC_FOUND_ROWS 语句。

例子:

这可能是同一个错误,只是在 MariaDB 中未修补,还是您认为我做错了什么?

谢谢!

0 投票
1 回答
929 浏览

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

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

它返回行数。

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

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

SQL_CALC_FOUND_ROWS

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

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

0 投票
1 回答
120 浏览

mysql - MySQL - ORDER BY 子句导致 SQL_CALC_FOUND_ROWS 选择不返回数据

我在 centos 6 机器上使用 MySQL 5.6(mysql Ver 14.14 Distrib 5.6.44,适用于 Linux (i686),使用 EditLine 包装器)

我有一个包含多个内部连接的查询。我已经确定,当使用带有 SQL_CALC_FOUND_ROWS 的 ORDER BY 子句时,不会返回任何数据。查询对消息说“确定”,并且我有一个查询花费了多长时间的持续时间 - 但没有返回任何内容。

如果我删除“SQL_CALC_FOUND_ROWS”然后我得到我的行。在 MySQL 工作台中,我可以看到一个持续时间,但在“获取”时间下它甚至不会尝试获取。

查询是:

如果我删除订单然后我得到我的 5 行。或者,如果我删除“SQL_CALC_FOUND_ROWS”,我会得到 5 行。

为什么我不能同时执行 order by 和 SQL calc?

我认为同样重要的是要注意这个确切的查询在 MySQL 5.5 上运行良好。我升级到 5.6.44 并得到了这种行为。

在我们的生产服务器上,运行 5.6.42-我们对此查询没有任何问题。

更新:似乎是上面提到的这个特定查询。如果我使用 SQL_CALC + ORDER BY 运行不同的查询,我会得到我的结果,即:

0 投票
1 回答
281 浏览

mysql - SQL_CALC_FOUND_ROWS / select FOUND_ROWS() 是否受竞争条件的影响?

根据这个答案:这里

的使用SQL_CALC_FOUND_ROWS不受竞态条件的限制。查询的结果SELECT,是的,但不是的结果FOUND_ROWS()。不要混淆这一点。

但是从我运行的所有查询中,它受到竞争条件的影响,每次我使用SQL_CALC_FOUND_ROWS时,由于某种原因,我经常遇到这些问题,我的结果来自select found_rows() as rows返回0

如果您有关于此主题的更多信息,请告诉我。

使用 --> Mysql 5.6 (Aurora RDS)

0 投票
2 回答
40 浏览

sql - 计算字段后返回值不正确

运行后,返回结果为:

它应该返回的是

最初以为加入有错误,经过多次加入测试,同样的错误结果。

SQLFiddle

SQLFiddle_2

SQLFiddle_3

SQLFiddle_2澄清我使用 Group By 因为我有多个 ID

SQLFiddle_3进行更多扩展。

在 SQLFiddle_3 上运行后,返回结果为:

应该是什么