我在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个玩家)。
答案 0 :(得分:0)
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;