history
次の列のテーブルがあります。
row_id, msgid, sender, receiver, chatcontent, transdate, transtime
各チャットのトランスクリプトは、テーブルの個別の行として保存されます。
シナリオ:コンテンツが2048文字を超える場合、私のフレームワークはチャットコンテンツを複数のトランスクリプトに分割します。データは、msgid、sender、receiver、transdate、transtimeなどの同じ詳細を持つ複数の行に格納されます。 。
たとえば、私のテーブルの内容は
001, msgid1, mark@test.int, james@test.int, this is a long tes, 2013-03-13, 13:55:34
002, msgid1, mark@test.int, james@test.int, t message which is, 2013-03-13, 13:55:34
003, msgid1, mark@test.int, james@test.int, splitted in multi, 2013-03-13, 13:55:34
004, msgid1, mark@test.int, james@test.int, ple rows, 2013-03-13, 13:55:34
005, msgid2, james@test.int, mark@test.int, yup i got you, 2013-03-13, 13:56:12
今、私は単一のクエリでデータをフェッチしたいと思います。
msgid1, mark@test.int, james@test.int, this is a long test message which is splitted in multiple rows, 2013-03-13, 13:55:34
msgid2, james@test.int, mark@test.int, yup i got you, 2013-03-13, 13:56:12
どうやってするの。1つのクエリですべての詳細を取得できません。コマンドを使用してチャットコンテンツを1つの列にマージすることはできますが、msgidの値をハードコーディングしたくありません
SELECT array_to_string(array(SELECT chatcontent FROM history where msgid='msgid1'),'');