我想从我的数据库桌面游戏中获取数据。 我搜索了
SELECT team_id,result from games where team_id=17;
在游戏桌中,我有所有匹配的结果,例如
id team_id team result
21 17 India w
22 17 India l
23 17 India l
24 17 India w
我想把这些数据作为
team_id result1 result2 result3 result4
17 w l l w
如果有人知道我该怎么办?
答案 0 :(得分:0)
对于有限数量的结果,例如最多4个,您可以执行以下操作:
SELECT team_id,
MAX(CASE WHEN rn = 1 THEN result END) AS result1,
MAX(CASE WHEN rn = 2 THEN result END) AS result2,
MAX(CASE WHEN rn = 3 THEN result END) AS result3,
MAX(CASE WHEN rn = 4 THEN result END) AS result4
FROM (
SELECT team_id, result,
@row_number := @row_number + 1 AS rn
FROM games
CROSS JOIN (SELECT @row_number := 0) AS vars
WHERE team_id = 17
ORDER BY id) AS t
答案 1 :(得分:0)
你可以尝试mysql group_concat在昏迷状态下获得所有结果,也许这对你有帮助......
答案 2 :(得分:0)
A"脏" (但相当一般 - 因为它不受结果数量的限制)这样做的方式是:
SELECT team_id, GROUP_CONCAT(result) AS results FROM GAMES ...
因此results
将包含w,l,l,w
。然后(我注意到你使用' php')标记了帖子,你可以使用explode()的某些内容来从结果中获取数组
$results = explode(',', $row[1]);