- 从 JSON 文档中提取数据,并将其作为具有指定列的关系表返回。此函数的完整语法如下所示
语法
JSON_TABLE(
expr,
path COLUMNS (column_list)
) [AS] alias
column_list:
column[, column][, ...]
column:
name FOR ORDINALITY
| name type PATH string path [on_empty] [on_error]
| name type EXISTS PATH string path
| NESTED [PATH] path COLUMNS (column_list)
on_empty:
{NULL | DEFAULT json_string | ERROR} ON EMPTY
on_error:
{NULL | DEFAULT json_string | ERROR} ON ERROR
参数 |
描述 |
||||||||||
expr |
这是一个返回 JSON 数据的表达式。这可以是常量 ()、列(,在子句之前指定的给定表)或函数调用 ()。'{"a":1}'t1.json_datat1JSON_TABLE()FROMJSON_EXTRACT(t1.json_data,'$.post.comments') |
||||||||||
path |
应用于数据源的 JSON 路径表达式。我们将与路径匹配的 JSON 值称为行源;这用于生成一行关系数据。该子句计算行源,在行源中查找特定的 JSON 值,并将这些 JSON 值作为关系数据行的各个列中的 SQL 值返回。COLUMNS 别名是必需的 |
||||||||||
column |
column支持以下类型的参数
该路径相对于 父路径行路径,或者在嵌套路径的情况下相对于父子句的路径。JSON_TABLE()NESTED [PATH] |
||||||||||
on empty |
如果指定)确定在数据丢失时执行的操作(取决于类型)。当子句中的列没有匹配项并为其生成补码行时,也会在子句中的列上触发此子句。on empty 采用以下值之一:JSON_TABLE()NESTED PATHNULL
如果使用,on_error取以下值之一,并具有相应的结果,如下所示:
|
来自 <https://dev.mysql.com/doc/refman/8.0/en/json-table-functions.html