如何在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个玩家)。
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;