如何从mysql查询中的多行的同一列中获取总值?

时间:2016-07-22 02:56:01

标签: c# mysql asp.net

我在ASP.Net(C#)中有一个连接到游戏数据库的项目。我有一个player表,我希望从具有相同playtime的所有玩家获得account_id行的总值。我的最后一个逻辑是:

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标签仅显示此playtime的第一个玩家的account_id(此帐户中有2个玩家)。

1 个答案:

答案 0 :(得分:0)

你正在寻找

SUM

  

SUM([DISTINCT] expr)

     

返回expr的总和。如果返回集没有行,则SUM()返回   空值。 DISTINCT关键字可用于仅对不同的值求和   of 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;