簡體   English   中英

Mysql Json 提取 - 密鑰的通配符選擇

[英]Mysql Json Extract - wild card selection of key

下面是我數據庫中的 json blob

{
  RootData: {
    202003: {
      201903: {
        "abc": 123,
        xyz: 456
      },
      data1: {
        
      },
      data2: {
        
      }
    }
  }
}

現在我有一個查詢在哪里提取節點201903內的數據,如下所示

select blah blah,
 JSON_EXTRACT(convert(columnname using utf8), '$.RootData."202003"."201903".abc') as blah

在上面的查詢中,我的問題圍繞着'$.RootData."202003"."201903".abc'部分

我不想硬編碼部分201903並在通配符的幫助下尋找可以 select 節點的語法。

我嘗試了以下選項但沒有運氣

'$.RootData."202003"."20*".abc'

'$.RootData."202003".[1].abc'

'$.RootData."202003".$.20*.abc'

不起作用,因為我猜它的語法不正確。 尋找正確的語法。 20 總是那個鍵的開始,我們可以依賴它。 它始終是第一把鑰匙。

$.RootData."202003"**.abc形式的路徑應該會有所幫助。

參考 - https://www.db-fiddle.com/f/6g4qiekAU4i3J8iRoAZiCA/0

結果類型將是數組。 要獲取第一個匹配結果,可以將結果嵌套在另一個JSON_EXTRACT中,如下所示

select JSON_EXTRACT(JSON_EXTRACT(convert(data using utf8), '$.RootData."202003"**.abc'), '$[0]')
from rootdata;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM