2016-07-22 46 views
1

我有連接到遊戲數據庫在ASP.Net(C#)項目。我有一個player表,我想從所有具有相同account_id玩家獲得playtime行的總價值。我最後的邏輯是這樣的:如何從mysql查詢中多行的同一列中獲取總值?

MySql.Data.MySqlClient.MySqlConnection conn; 
MySql.Data.MySqlClient.MySqlCommand cmd; 
String queryStr; 
String connStringPlayer = System.Configuration.ConfigurationManager.ConnectionStrings["PlayerDB"].ToString(); 
conn = new MySql.Data.MySqlClient.MySqlConnection(connStringPlayer); 
conn.Open(); 
queryStr = "SELECT playtime FROM player.player WHERE account_id='" + AccountId + "' LIMIT 5"; 
cmd = new MySql.Data.MySqlClient.MySqlCommand(queryStr, conn); 
{ 
    Int32 countpt = (Int32)cmd.ExecuteScalar(); 
    String playcount = countpt.ToString(); 
    AccountInfoTotalGameMinuetsValue.Text = playcount; 
} 
conn.Close(); 

這樣我AccountInfoTotalGameMinuetsValue標籤顯示的這個account_id一號球員只有playtime(2名球員在此帳戶存在)。

回答

0

是你在找什麼

SUM([DISTINCT]表達式)

返回expr的總和。如果返回集沒有行,則SUM()返回空值 。 DISTINCT關鍵字可用於僅彙總expr的不同值 。如果沒有匹配的行

SUM()返回NULL。

所以下面的查詢會給你總計爲所有的玩家

SELECT account_id, SUM(playtime) FROM player.player GROUP BY account_id; 

,如果你想要的信息只是一個球員

SELECT account_id, SUM(playtime) FROM player.player 
WHERE account_id = some_id 
GROUP BY account_id; 
+0

謝謝,我覺得它幫助:) – Dev

相關問題