我想讓MySQL輸出表的COUNT和10個第一個結果。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
我很無能。任何幫助是極大的讚賞。
你的計數是基於什麼? – Hackerman
@Hackerman字面上「*」,因爲我只想計算條目,而不是一個特定的項目。 – Fusseldieb
這是不是你可以和應該從你的PHP表示層處理?在PHP中,您可以控制要顯示的內容,並且結果集的大小也會產生計數。 –