2009-06-12 8 views
1

mysqlクエリでFirst_Name、LastName、First Nameのすべてのレコードを取得したいとします。例えば MySQLクエリで値を取得する方法は?

mytableは、次のようになります。

rec Id  First Name  Last Name 
1   Gnaniyar  Zubair 
2   Frankyn  Albert 
3   John   Mathew 
4   Suhail   Ahmed 

出力は次のようにする必要があります:

Gnaniyar Zubair, Frankyn Albert, John Mathew, Suhail Ahmed 

は私にSQLを与えます。

答えて

6

これは、クエリで行う必要がある場合は、GROUP_CONCATを使用することができますが、あなたはそれが何かによってグループ化している場合を除きかなり愚かなクエリと連結は実際にクライアント上で行われるべきです。

SELECT GROUP_CONCAT(FirstName + ' ' + LastName 
        ORDER BY FirstName, LastName 
        SEPARATOR ', ') AS Names 
FROM People; 
+0

ありがとうBlixt ... 1行がフェッチされたというメッセージが表示されますが、「Blob」以外は表示されません –

+0

実際、BLOB(Binary Large OBject)のタイプは非常に長くなる可能性があるためです。これは、クライアントインタフェースがこれを考慮してフィールドを非表示にするため、BLOBとして表示されます。 – Blixt

0

すべてのレコードで1行を取得するのではなく、データを表現することです。したがって、私は単純なSELECTクエリを取って、必要なレコードを取ってから、好きなようにビューレイヤーに配置することをお勧めします。

一方、このレコード連結をSQLレベルではなくビューレベルで解決する必要があるのはなぜですか?

0

1行で取得したい場合は、データベースを適切に使用していない可能性があります。

あなただけの姓と名を一緒に参加したい場合は、それは簡単です:

SELECT CONCAT(`First Name`, ' ', `Last Name`) FROM mytable 
+0

こんにちはお友達、ありがとうございます。これは正しい質問です。しかし、すべての4つのレコードがこのconcatanationと表示されます...私はすべての単一の行にしたい。以下のような出力が得られます クエリ、 Gnaniyarズバイル Frankynアルバート、 ジョン・マシュー、 Suhail Ahmedの (合計4つの記録) しかし、私のような1つのレコードだけを取得したい、 Gnaniyarズバイル、Frankynアルバート、John Mathew、Suhail Ahmed ありがとうございます。 - Gnaniyar Zubair –

+0

私は言ったように、あなたのデータベースを正しく使用していません。 GROUP_CONCAT構文が役に立つかもしれないと思っていました。 – nickf

関連する問題