PostgreSQL json配列内のデータが条件を満たしているかを判定する
- 作成日 2024.10.31
- PostgreSQL
- PostgreSQL
PostgreSQLで、json配列内のデータが条件を満たしているかを判定する手順を記述してます。「jsonb_path_exists」に条件を指定することで可能です。
環境
- OS CentOS Stream release 9
- PostgreSQL 15.1
- pgadmin4 6.16
json配列内のデータが条件を満たしているかを判定
json配列内のデータが条件を満たしているかを判定するには、「jsonb_path_exists」を使用します。
jsonb_path_exists(json配列,条件);
実際に、実行してみます。
SELECT
jsonb_path_exists('[1, 2, 3, 4, 5]', '$[*] ? (@ > 3)'),
jsonb_path_exists('[1, 2, 3, 4, 5]', '$[*] ? (@ > 5)');
実行結果をみると、判定されていることが確認できます。
以下のように複数条件を指定することも可能です。
SELECT
jsonb_path_exists('[1, 2, 3, 4, 5]', '$[*] ? (@ > 3 && @ < 4)'),
jsonb_path_exists('[1, 2, 3, 4, 5]', '$[*] ? (@ > 3 && @ < 6)');
実行結果
変数にjsonを使用
変数に「json」データを使用することも可能です。
SELECT
jsonb_path_exists('
[1, 2, 3, 4, 5]', '$[*] ? (@ > $x && @ < $y)',
'{"x": 2, "y": 3}'),
jsonb_path_exists('
[1, 2, 3, 4, 5]', '$[*] ? (@ > $x && @ < $y)',
'{"x": 2, "y": 6}');
実行結果
-
前の記事
Ubuntuでシステムのメモリ使用量を最適化する方法 2024.10.31
-
次の記事
MariaDB selectした結果にNoをふる 2024.11.01
コメントを書く