2016-05-24 7 views
0

私のデータベースのテーブルゲームからデータを取得したい。 は、私は、このようなデータベース検索で一列にデータを取得する方法

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 

として、このデータを取得したいすべてなど、すべてのmatchsの結果を持っているゲームテーブルで

SELECT team_id,result from games where team_id=17; 

として検索しました私がやる?その結果、限られた数のために

+0

のうちの配列を取得するためにexplode()の線に沿って何かを使用することができ、あなたはチームのために別のテーブルを持っていますか? –

+5

Google: 'MySQL Pivoting' – sagi

+1

http://stackoverflow.com/questions/7674786/mysql-pivot-table –

答えて

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

結果が限られているように見えません。 – sagi

0

あなたが昏睡してフィールド内のすべての結果を得るためにmysql group_concatを試みることができる、多分これはあまりにも役立ちます...

0

「汚い」 - それを行うの(ではなく、一般的なそれは結果の数によって限定されるものではないという点で)方法は次のようになります。

SELECT team_id, GROUP_CONCAT(result) AS results FROM GAMES ... 

だから10にはw,l,l,wが含まれます。そして、(私はあなたが「PHP」を使用して記事をタグ付け気づい)、あなたは結果

$results = explode(',', $row[1]); 
関連する問題