0
我不確定在堆棧溢出中是否沒有答案,但我沒有在那裏找到確切的東西。 所以,我有這樣的數據表:MySQL:在每個字段中計算不同的值
id | sector | type | level
| | |
1 | TMT | Long | First
2 | Energy | Long | Second
3 | TMT | Short | Third
4 | Other | Long | First
5 | TMT | N/A | Sixth
6 | Other | Short | First
我需要的是每個不同值的彙總在各個領域,如:
Sector TMT: 3
Sector Energy: 1
Sector Other: 2
Type Long: 3
Type Short: 2
Type N/A: 1
Level First: 3
Level Second: 1
Level Third: 1
Level Sixth: 1
類型和級別是固定值。部門可能是動態的,我的意思是沒有最終名單,因爲他們正在添加每個項目。
現在我選擇的所有行,並用PHP處理它:
SELECT `sector`, `type`, `level` FROM `table`;
和例如:
<?php
$result['type_long'] = 0;
$result['type_short'] = 0;
$result['type_na'] = 0;
foreach ($rows as $row)
{
if ($row['type'] == 'Long')
{
$result['type_long']++;
}
else if ($row['type'] == 'Short')
{
$result['type_short']++;
}
else if ($row['type'] == 'N/A')
{
$result['type_na']++;
}
}
等。對於10000條記錄它不是真正的快,因爲我需要選擇所有來自數據庫的行,然後通過PHP對他們做些什麼。
有什麼辦法可以用MySQL更快地做到這一點?
謝謝!
好點,謝謝。無論如何,你認爲它的表現如何,因爲有3個選擇?確切的說,我需要5個SELECT來計算所有這些,因爲我有5個選項(不僅僅是扇區,類型和級別)。我也有所有這些領域的索引。 – 2015-03-24 21:30:01