我的 MySQL 数据库中有一个 GAME_SCORES 表,其中包含这样的简单列
UserID TotalScore
该表存储该用户完成的总分。我需要更改上表或创建新表,以便我可以处理 LastWeek 和 ThisWeek 以及 TotalScore。所以我可能需要将上表更改为下表
UserID TotalScore ThisWeekScore LastWeekScore
我想知道处理这个问题的最佳和最有效的方法。
请让我知道我是 MySQL 新手。
谢谢。
我的 MySQL 数据库中有一个 GAME_SCORES 表,其中包含这样的简单列
UserID TotalScore
该表存储该用户完成的总分。我需要更改上表或创建新表,以便我可以处理 LastWeek 和 ThisWeek 以及 TotalScore。所以我可能需要将上表更改为下表
UserID TotalScore ThisWeekScore LastWeekScore
我想知道处理这个问题的最佳和最有效的方法。
请让我知道我是 MySQL 新手。
谢谢。
我会创建两个表:
UserID
和
Scores
其中 Scores 表有score、date和user_id字段。
然后我会得到 ThisWeekScore 使用
SELECT * FROM UserID JOIN Scores ON UserId.id = Scores.user_id WHERE Scores.date >= curdate() - INTERVAL DAYOFWEEK(curdate())+6 DAY AND Scores.date < curdate()
并使用类似的技术获取 LastWeekScore。
说清楚,你有来自不同游戏或其他东西的分数,你把它们加到一列(totalScore)?如果是,那么您需要将所有分数分别保存在另一个表中,并在这个新表中设置 totalScore、thisWeekScore、lastWeekScore。
不确定任务是什么。但似乎有点不同的数据库结构应该更适合。
+-----------+ +------------+ | 用户 | | 分数 | +-----------+ 1 ∞ +------------+ | 编号 | -------- | 用户 ID | | 姓名 | | 分数 | | ... | | created_at | +-----------+ +------------+
因此,您将能够获取最新分数、本周最佳分数、上周分数或任何其他分数。
或者,如果您只想添加两列,请使用 ALTER TABLE。