PostgreSQL jsonデータをkeyとvalueの組み合わせを取得する
- 作成日 2024.03.19
- PostgreSQL
- PostgreSQL
PostgreSQLで、jsonデータをkeyとvalueの組み合わせを取得する手順を記述してます。「json_each」を使用することで可能です。textデータとして取得する場合は「json_each_text」を使用します。
環境
- OS CentOS Stream release 9
- PostgreSQL 15.1
- pgadmin4 6.16
keyとvalueの組み合わせを取得
keyとvalueの組み合わせを取得するには、「json_each」を使用します。
※「josnb型」には「jsonb_each」を使用します。
json_each(jsonデータ);
jsonb_each(jsonbデータ);
実際に、実行してみます。
SELECT
json_each('{"1":"aaa", "2":"bbb", "3":"ccc"}'),
jsonb_each('{"1":"aaa", "2":"bbb", "3":"ccc"}');
実行結果をみると取得されていることが確認できます。
型の違う「jsonb」に「json_each」を使用するとエラーとなります。
実際に、以下のテーブルの「jsonb」型の「jsonb_data」に実行してみます。
エラーとなることが確認できます。
SELECT
json_each(jsonb_data)
from json_test;
ERROR: 関数json_each(jsonb)は存在しません
LINE 2: json_each(jsonb_data)
^
HINT: 指定した名前と引数型に合致する関数がありません。明示的な型変換が必要かもしれません。
SQL 状態: 42883
文字: 9
実行結果
空を指定
引数を空にすると、エラーが発生します。
SELECT
json_each();
ERROR: 関数json_each()は存在しません
LINE 2: json_each();
^
HINT: 指定した名前と引数型に合致する関数がありません。明示的な型変換が必要かもしれません。
SQL 状態: 42883
文字: 9
実行結果
textデータで取得
textデータとして取得する場合は「json_each_text」を使用します。
SELECT
json_each_text('{"1":"aaa", "2":"bbb", "3":"ccc"}'),
jsonb_each_text('{"1":"aaa", "2":"bbb", "3":"ccc"}');
実行結果
-
前の記事
MariaDB 現在日付を確認する 2024.03.19
-
次の記事
Dart Mapを一括で更新する 2024.03.21
コメントを書く