mysql SQL使用LIMIT获取结果和结果中的行数

4c8rllxm  于 2022-12-26  发布在  Mysql
关注(0)|答案(1)|浏览(153)

我有一个大型数据库,为了避免每次都获取查询的所有结果,我使用了LIMIT(这不是必须的)。我需要计算结果的数量。最愚蠢的解决方案是下面这个,它起作用了:
我们只需要得到我们需要的数据:

SELECT * FROM table_name WHERE param > 3 LIMIT 10

然后我们求出长度:

SELECT COUNT(1) FROM table_name WHERE param > 3 LIMIT 10

但是这个解决方案让我感到很困扰,因为与所讨论的查询不同,我使用的查询很复杂,您基本上必须运行它两次才能获得结果。
对我来说,另一个愚蠢的解决方案是:

SELECT COUNT(1), param, anotherparam, additionalparam FROM table_name WHERE param > 3 LIMIT 10

但是这只会导致一行。在这一点上,我将是确定的,如果它只会填补计数行与相同的数字,我只需要这些信息,而不浪费计算时间。
有没有更好的方法来实现这一目标?
顺便说一句,我不希望得到10作为COUNT的结果,我需要的长度没有LIMIT

abithluo

abithluo1#

这个问题非常类似于:How can I count the numbers of rows that a MySQL query returned?
另请参阅:https://mariadb.com/kb/en/found_rows/
这可能是解决您的问题的最有效的解决方案,但最好使用EXPLAIN对大小合理的数据集进行测试。

相关问题