PostgreSQL json配列からインデックス番号を指定して値を取得する
- 作成日 2022.12.05
- PostgreSQL
- PostgreSQL
PostgreSQLで、json配列からインデックス番号を指定して値を取得する手順を記述してます。「json_extract_path」にインデックス番号を指定することで取得することが可能です。
環境
- OS CentOS Stream release 9
- PostgreSQL 15.1
- pgadmin4 6.16
インデックス番号を指定して値を取得
インデックス番号を指定して値を取得するには、「json_extract_path」を使用します。
※「josnb」型には「jsonb_extract_path」を使用します。
json_extract_path(json配列,インデックス番号);
json_extract_path(json配列,インデックス番号);
実際に、実行してみます。
SELECT
json_extract_path('[1, 2, [3, 4]]', '0'),
json_extract_path('[1, 2, [3, 4]]', '1'),
json_extract_path('[1, 2, [3, 4]]', '2');
実行結果をみると、取得されていることが確認できます。
存在しないインデックス番号を指定すると「null」が返ります。
SELECT
json_extract_path('[1, 2, [3, 4]]', '3');
実行結果
ネストされたjson配列
ネストされたjson配列の各要素を取得する場合は、インデックス番号を指定後に再度指定します。
SELECT
json_extract_path('[1, 2, [3, 4]]', '2', '0'),
json_extract_path('[1, 2, [3, 4]]', '2', '1');
実行結果
ネストされていないjson配列に対して、同様の処理を行うと「null」が返ります。
SELECT
json_extract_path_text('[1, 2, [3, 4]]', '0', '0'),
json_extract_path_text('[1, 2, [3, 4]]', '1', '1');
実行結果
textデータとして取得
結果を「textデータ」として取得する場合は「json_extract_path_text」を使用します。
SELECT
json_extract_path_text('[1, 2, [3, 4]]', '0'),
json_extract_path_text('[1, 2, [3, 4]]', '1'),
json_extract_path_text('[1, 2, [3, 4]]', '2', '0'),
json_extract_path_text('[1, 2, [3, 4]]', '2', '1');
実行結果
-
前の記事
MariaDB 指定した値のリストの位置を確認する 2022.12.05
-
次の記事
Windows Server 「このフォルダーを変更するには アクセス許可を得る必要があります」が発生してフィルダーを削除できない場合の対処法 2022.12.05
コメントを書く