gpt4 book ai didi

mysql - 查找使用限制的查询的总行数

转载 作者:行者123 更新时间:2023-11-30 23:00:56 27 4
gpt4 key购买 nike

我有一个返回 X 行的函数,其中 X 是用户选择的参数。我知道我可以在查询中使用 SQLCALCFOUND_ROWS,但我必须使用 select foundrows();紧随其后。如果在我的 cfquery 标记内的主查询之后使用 select foundrows(),则只返回总行的值。如果我在另一个cfquery中使用它,有可能mysql线程中有另一个查询而我的结果不可用。处理这个问题的更好方法是什么。

最佳答案

好的,所以我通过将查询包装在 cftransaction 中来实现它。请注意:只有当我的主查询很大和/或将其作为子查询运行以获取总记录数时,我才必须使用此方法。 MySql 声明 SELECT FOUND_ROWS() 应在使用 SQL_CALC_FOUND_ROWS 进行查询后立即运行。如果我在相同的 cfquery 标记中运行它,我将无法从我的主要查询访问数据。如果我运行另一个 cfquery,则存在查询连接返回池的风险。 @Leigh 提到在 cftransaction 中运行这两个查询可确保保留连接。这不是最好的解决方案,但比运行两次大型查询要好得多。

<cftransaction>    
<cfquery name="qry1" datasource="dsn">
select SQL_CALC_FOUND_ROWS col1,col2 from someTable
some complex joins
where a=b
</cfquery>
<cfquery name="qry2" datasource="dsn">
select FOUND_ROWS() as TotalRows;
</cfquery>
</cftransaction>

关于mysql - 查找使用限制的查询的总行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24030229/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com