问题标签 [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.
php - 带有 HAVING 语句的 Mysql FOUND_ROWS
编辑:事实证明,代码似乎正在按预期运行。这只是一个调试问题。不好意思,打扰了!
我正在运行一个涉及多个过滤器和 JOIN 的大型查询,并且我正在对结果进行分页,因此查询运行了两次。
我尝试使用SQL_CALC_FOUND_ROWS
以避免两次运行查询,但由于我使用HAVING
语句进行过滤,因此在“有语句”之前得到了未过滤的总数。我需要运行,HAVING
因为原始查询依赖于计数的东西——我知道这很糟糕,但我现在没有修改数据库结构的权限。
我的 SQL 的一个想法:
当我运行新的 SQL 查询时,
SELECT FOUND_ROWS() as total_rows
我得到了全部的u.id
ROWS 而不是过滤的。(这只发生在HAVING
语句中,而不是WHERE
子句中)
c# - MySqlDataReader 没有读取我的查询,就好像没有返回行但 PHPMyAdmin 返回具有相同查询的行
第一次在这里请求您的帮助。
我知道我的标题是错误的,如果我们弄清楚问题出在哪里,我会改变它,此刻我有点迷茫。
好吧,我们首先要从我的数据库中选择当前用户范围内的所有用户。
如果我执行查询,它会从 PHPMyAdmin 返回 4 行,哦,我应该提到我正在使用 MariaDB
这是查询:
现在从 C# 这里看起来如何:
ExecuteQuery 函数代码:
请注意循环 while(reader.read()) ... 永远不会“触发”,就好像它们没有与查询匹配的行一样。
现在我有点失去了我应该做些什么来解决这个问题,欢迎所有帮助!
非常感谢你的帮助 :)
powerbuilder - 无法理解有关 powerbuilder 11.5 的 SQLCA 的代码行
因为 SQLCA 是一个内置对象,我在我的程序中找不到它,我也找不到of_init_inifile()
函数,我在哪里可以找到它?如何?在我的程序(powerbuilder 11.5)中,我看到了这样的一行:
我的 powerbuilder 版本是 11.5
php - 带有 FOUND_ROWS 的 SQL_CALC_FOUND_ROWS 始终返回 1
上述查询总是为找到的行结果为 1。我正在使用 php 7.1 和 maria db 10.1 。
我的后端是 laravel 5.5,我正在 mysql 上发出 DB::raw 请求。服务器 apache 灯服务器。
这是一个错误还是有一些解决方法?
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 中未修补,还是您认为我做错了什么?
谢谢!
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)。
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 运行不同的查询,我会得到我的结果,即:
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)
sql - 计算字段后返回值不正确
运行后,返回结果为:
它应该返回的是
最初以为加入有错误,经过多次加入测试,同样的错误结果。
SQLFiddle_2澄清我使用 Group By 因为我有多个 ID
SQLFiddle_3进行更多扩展。
在 SQLFiddle_3 上运行后,返回结果为:
应该是什么