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

本文关键字:一列 获取 mysql 查询 | 更新日期: 2023-09-27 17:58:12

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

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个玩家)。

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

SUM是您要查找的

SUM([DISTINCT]expr)

返回expr的和。如果返回集没有行,则SUM()返回NULL。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;