好的,所以我想为团队制作这个表格。类似的东西:
Football Club Name | W-W-L-D-W
(W =胜利,D =平局,L =失败)
我认为我会这样做的方法是添加文字。例如,FC Apple - FC Banana就有这场比赛。香蕉队以0-1获胜。在团队表的团队排中,"表格"列被修改,添加" -W"。香蕉与香槟的另一场比赛,他们输了。再次添加" -L"到专栏。所以现在这个专栏是" -W-L"。这可能吗?
我考虑过制作5个colums,lastmatch,lastmatch2,... lastmatch5。当一个团队获胜时,lastmatch5为W.如果lastmatch4为null并且团队失败,则lastmatch4将为L.如果所有lastmatch列都已填充,则make lastmatch1 = lastmatch2,2 = 3,3 = 4,4 = 5,5 = null,由结果填充。
但这非常复杂......那就是为什么我想到了第一种方法。 还有其他方法吗?你觉得怎么样?
答案 0 :(得分:5)
首先,要回答您的问题,您可以从列中获取当前内容,例如W-W-L-D
,添加最近的结果,例如-W
,然后使用新字符串更新列 - W-W-L-D-W
。但我并不建议这样做。将单个记录存储在长字符串中可能不是最好的主意。而是创建单独的关系表。这只是我的头脑,但我会考虑做更像这样的事情:
Table: Football_club
+========================+
| Id | Name |
|---------|--------------|
| 1 | Apple |
| 2 | Banana |
| 3 | Kiwi |
+========================+
//This table stores each Football club's basic info
Table: Matches
+================================================+
| Id | Date | Team1_id | Team2_id |
|-------|-----------|-------------|--------------|
| 1 |2014-05-14 | 1 | 2 |
| 2 |2014-05-15 | 1 | 3 |
| 3 |2014-05-16 | 2 | 3 |
+================================================+
//This table stores basic info about each match.
Table: Match_outcomes
+==================================+
| Id | Match_id | Winner_id |
|-------|--------------|-----------|
| 1 | 1 | 2 |
| 2 | 2 | NULL |
| 3 | 3 | 3 |
+==================================+
//This table stores match outcomes.
//A winner ID of NULL would mean it was a draw (you could also use 0 or -1 or some other value that is not a team id)
通过这种方式,您可以随时获得任何团队的获胜,失败和平局数量,或者非常轻松地添加匹配和匹配结果。
例如,要获得团队$id
的获胜次数:
(我还没有对此进行测试,但我认为它会起作用)
SELECT
COUNT(mo.id) AS wins
FROM match_outcomes mo
JOIN matches m ON m.id = mo.match_id
AND (m.team_id1 = $id OR m.team_id2 = $id)
WHERE mo.winner_id = $id
GROUP BY mo.winner_id
更新 - 一直在搞乱这个...这里有一个示例查询,可以使用上面的数据库获得每个团队的所有胜利,亏损和平局:
SELECT
fc.name,
SUM(IF(mo.winner_id=fc.id, 1, 0)) AS wins,
SUM(IF(mo.winner_id!=fc.id, 1, 0)) AS losses,
SUM(IF(ISNULL(mo.winner_id), 1, 0)) AS draws
FROM match_outcomes mo
JOIN matches m ON m.id = mo.match_id
JOIN football_clubs fc ON fc.id = m.team1_id
OR fc.id = m.team2_id
GROUP BY fc.name
这只是一个粗略的想法 - 希望它有用!