gpt4 book ai didi

php - MySQL COUNT 和 List 10 查询

转载 作者:行者123 更新时间:2023-12-01 00:18:08 26 4
gpt4 key购买 nike

我试图让 MySQL 输出表的 COUNT,然后输出前 10 个结果。

要列出表格的前 10 个结果,我是这样做的:

SELECT * FROM SomeTable LIMIT 0,10

这很简单,而且效果很好......但是:我还想计算我总共有多少个条目并将其附加到查询中,这样我就不需要执行 2 个查询,浪费资源。

如果我这样做:

SELECT *, COUNT(*) FROM SomeTable LIMIT 0, 10

它返回一个错误,说:

[Err] 1140 - In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column 'work.SomeTable.ID'; this is incompatible with sql_mode=only_full_group_by

然后我决定使用 GROUP BY,但同样,它没有返回我想要的结果:

SELECT *, COUNT(*) FROM SomeTable GROUP BY SomeTable.ID LIMIT 0, 10

返回我:

ID | Something1 | Something 2 | ... | COUNT(*)
1 Lorem Ipsum ... 1
2 Lorem Ipsum ... 1
3 Lorem Ipsum ... 1
... ... ... ... ...
10 Lorem Ipsum ... 1

最后,我是这样尝试的:

SELECT *, ( SELECT COUNT(*) FROM SomeTable ) FROM SomeTable GROUP BY SomeTable.ID LIMIT 0, 10

哪个返回:

ID | Something1 | Something2 | ... | COUNT(*)
1 Lorem Ipsum ... 13
2 Lorem Ipsum ... 13
3 Lorem Ipsum ... 13
... ... ... ... ...
10 Lorem Ipsum ... 13

13 是表的大小,这很好,但是对每个条目重复这个在某种程度上是资源浪费......

我的目标是让它像这样输出:

ID | Something1 | Something2 | ...
1 Lorem Ipsum ...
2 Lorem Ipsum ...
3 Lorem Ipsum ...
... ... ... ...
10 Lorem Ipsum ...
-------------------------------------
COUNT(*) |
13

我是无知的。非常感谢任何帮助。

最佳答案

您不能在 MySQL 或任何其他 RDMS 的一个结果集中返回两种不同“类型”的行。

它们必须是两个不同的查询,或者您可以执行您已经找到的内容。

您似乎想要表的总大小,加上前 10 个结果。这通常通过两个查询来完成,一个是调用 SELECT COUNT(*) FROM table,另一个是您要返回的集合。不要害怕调用 COUNT(*),这通常不会执行完整的表扫描,因为 SQL 引擎会跟踪表中的总记录数。

关于php - MySQL COUNT 和 List 10 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45961409/

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