本文讲述了在SQL查询中,使用WITH子句结合JSON_TABLE函数时遇到错误1210的问题,发现通过添加GROUP BY解决。重点在于理解WITH和GROUP BY对JSON_TABLE操作的影响,以及底层原理分析。 摘要由CSDN通过智能技术生成

问题描述如题,查了半天没搞明白原理,但找到报错原因了。
语法大致如下:
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合作使用时会产生如此报错。
先记下,有空再查下。
有知道底层原理的大佬可以指点迷津一二。

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 07-01 2. 优化 SQL 语句,制定执行计划;   3. 执行并返回结果;   如上,一条 SQL 直接是走流程处理,一次编译,单次运行,此类普通语句被称作 Immediate Statements (即时 SQL)。 2、预处理 SQL   但是,绝大多数情况下,某需求某一条 SQL 语句可能会被反复调用执行,或者每次执行的时候只有个别的值不同(比如 select
昨天在 使用 quartz的时候在开发环境一切正常,但是发布到测试机器上的时候却出现 Incor rect arguments to mysql _stmt_ execute 错误,然后 mysql 服务不能正常访问。 后来查了半天发现是版本问题,本地是5.0.27,服务器是5.0.19这个小版本也会引起这么大的问题。 mysql 的java驱动是5.0.4.或许是驱动和服务器版本的综合原因。 没有深究,据说...
这个错误提示意味着在调用 ` JSON _OBJECT` 函数时,传递给该函数的参数数量不正确。` JSON _OBJECT` 函数用于创建一个 JSON 对象,并将指定的键值对添加到该对象中。 该函数的语法为: JSON _OBJECT(key1, value1, key2, value2, ..., keyn, valuen) 其中,`key1`、`key2`、...、`keyn` 表示键名,`value1`、`value2`、...、`valuen` 表示键值。注意,键名和键值之间必须成对出现,且数量必须为偶数。 如果在调用 ` JSON _OBJECT` 函数时出现 " Incor rect parameter count in the call to native function ' JSON _OBJECT'" 错误,可能有以下几种可能的原因: 1. 参数数量不正确:` JSON _OBJECT` 函数要求传递的参数数量必须为偶数,如果参数数量不正确,则会出现上述错误提示。请检查函数调用语句中传递的参数数量是否正确。 2. MySQL 版本过低:` JSON _OBJECT` 函数是从 MySQL 5.7.8 版本开始引入的,如果你正在 使用 MySQL 版本比 5.7.8 还要低,则无法 使用 该函数。请升级到 MySQL 5.7.8 及以上版本。 3. 键名或键值类型不正确:` JSON _OBJECT` 函数要求传递的键名和键值必须是 MySQL 支持的数据类型,否则会出现错误提示。请检查传递给函数的键名和键值数据类型是否正确,例如是否 使用 了字符串类型的键名或数字类型的键值。 4. MySQL 配置错误:某些情况下可能会出现 MySQL 配置错误导致无法 使用 ` JSON _OBJECT` 函数的问题,请检查 MySQL 配置文件中是否启用了 JSON 功能,以及是否加载了正确的插件。