2016-07-22 88 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

相关问题