MySQL のJSON型の path書式

PostgreSQL とは違って、ルートを$文字で指定して、"->" による連結ではなく
JSON列名 -> path
 あるいは、
JSON列名 ->> path
で、文字列とての参照になる。
path 部分が、$から始まってJSONキーを '.' ピリオド区切り文字で指定する。

例) jdataという列データが以下の時、

{
  "limit": "2024-03-01",
  "other": {
    "len": 38,
    "label": "Abc",
    "width": 23,
    "options": [
      "A",
      "B",
      "C"
    ]
  },
  "price": 320
}

other の label を抽出

SELECT jdata->>'$.other.label' 

priceを文字列として抽出

SELECT jdata->>'$.price'     

priceを抽出 → DECIMAL に CASTする

SELECT cast(jdata->'$.price' as DECIMAL) 

limit の日付を DATE 型へ

SELECT cast(jdata->'$.limit' as DATE)  

配列の先頭

SELECT jdata->>'$.other.options[0]'