Mysql

指定來自不同列的 Json 數組的範圍

  • June 2, 2022

Mysql 8 可以提取保存在 JSON 列中的部分數組,如下所示:

SELECT jcol->>'$[1 to 5]' FROM db.table`` 其中 1 和 5 是數組中所需元素範圍的邊界。

我的問題是如何通過不同列的數字指定範圍。像這樣的一些事情: SELECT jcol->>'$[table2.from to table2.to]' FROM db.table``

您必須使用通用字元串處理來建構 JSON 路徑。

SELECT JSON_UNQUOTE(JSON_EXTRACT(jcol, CONCAT('$[', table2.from, ' to ', table2.to, ']'))) 
FROM db.table

JSON 路徑是文字的,它不會作為表達式進行評估,因此您必須使用它CONCAT()來建構路徑。

並且表達式用法不允許使用->>運算符,必須使用JSON_UNQUOTE(JSON_EXTRACT())

引用自:https://dba.stackexchange.com/questions/312840