如何在数据库搜索中获取单行数据

时间:2016-05-24 12:31:49

标签: php mysql database

我想从我的数据库桌面游戏中获取数据。 我搜索了

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

如果有人知道我该怎么办?

3 个答案:

答案 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]);