问题描述如题,查了半天没搞明白原理,但找到报错原因了。
语法大致如下:
WITH table1 AS (SELECT id, json_array_col FROM some_table) SELECT * FROM table1, JSON_TABLE(json_array_col, "$[*]" COLUMNS(array_element CHAR(22) PATH "$")) t1;
报错1210 - Incorrect arguments to JSON_TABLE,
修复:
WITH table1 AS (SELECT id, json_array_col FROM some_table) SELECT * FROM table1 GROUP BY id, JSON_TABLE(json_array_col, "$[*]" COLUMNS(array_element CHAR(22) PATH "$")) t1;
差别只在group by,
SELECT id, json_array_col FROM some_table, JSON_TABLE(json_array_col, "$[*]" COLUMNS(array_element CHAR(22) PATH "$")) t1;
而此时,json_table在实体表时,不需要group by,并不会产生此错误,只在with语法与json_table合作使用时会产生如此报错。
先记下,有空再查下。
有知道底层原理的大佬可以指点迷津一二。
MySQL WITH与json_table联合使用产生报错1210 - Incorrect arguments to JSON_TABLE
于 2022-06-29 19:46:49 首次发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)