MySQL の GROUP_CONCAT から PostgreSQL の STRING_AGG への移行
MySQL の GROUP_CONCAT
関数は、複数の行の値を単一の文字列に効率的に結合します。 PostgreSQL は、同じ結果を達成するための STRING_AGG
関数を提供します。
解決策:
PostgreSQL データベースで GROUP_CONCAT
の機能を複製するには、クエリ内で STRING_AGG
関数を使用します。 たとえば、some_column
という名前の列の値を一意の id
ごとに連結する場合、クエリは次のようになります。
<code class="language-sql">SELECT id, STRING_AGG(some_column, ',') FROM the_table GROUP BY id;</code>
詳細な説明:
STRING_AGG(some_column, ',')
: クエリのこの部分は、some_column
列で見つかった値を連結します。 ,
は、連結された値の間の区切り文字としてカンマを指定します。 必要に応じて、この区切り文字を他の文字または文字列に変更できます。GROUP BY id
: id
列に基づいて行をグループ化します。 STRING_AGG
関数は各グループに対して個別に動作し、同じ id
グループ内でのみ値を連結します。期待される出力:
クエリは、MySQL の GROUP_CONCAT
:
<code>id | string_agg ------+----------------- TM67 | 4,9,72 TM99 | 2,3</code>
これは、GROUP_CONCAT
を使用して、MySQL STRING_AGG
関数の機能を PostgreSQL コンテキストに直接効果的に変換する方法を示しています。
以上がMySQL の GROUP_CONCAT を PostgreSQL の STRING_AGG に置き換えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。