PostgreSQL で jsonb 型のカラムの一部を検索条件にする方法を備忘録として残しておく
詳細は公式を参照

方法

以下の DB 構成および更新前のレコードの場合

  • Book Table
    • id field: SERIAL type ※Primary Key
      • value1: 1
      • value2: 2
    • options field: JSONB type
      • value1: {“key_1”: “aaa”, “key_2”: “bbb”}
      • value2: {“key_1”: “ccc”, “key_2”: “ddd”}
SELECT options->>'key_2'
FROM book
WHERE options->>'key_1' = 'ccc';
#=> 'key_2'