gpt4 book ai didi

json - 错误代码 : 1210. JSON_TABLE 的参数不正确

转载 作者:行者123 更新时间:2023-12-03 08:36:55 33 4
gpt4 key购买 nike

我正在使用 JSON 表,但遇到了问题。我收到以下错误:

错误代码:1210。JSON_TABLE 的参数不正确

我在 AWS 上通过 MySQL Workbench 使用 MySQL 引擎版本 8.0.20

当我直接在表 (sf.purchases) 中使用 JSON_Table 命令时,我能够获得预期的 JSON 输出。例如,这有效:

SELECT pur.*, jt.*
FROM sf.purchases AS pur,
JSON_TABLE (pur.items, '$[*]'
COLUMNS (
C_jt_id FOR ORDINALITY,
C_jt_item_uid VARCHAR(255) PATH '$.item_uid',
C_jt_item_name VARCHAR(255) PATH '$.name',
C_jt_qty INT PATH '$.qty',
C_jt_price DOUBLE PATH '$.price')
) AS jt;

它转换'[{“数量”:“1”,“名称”:“测试”,“价格”:“59.99”,“item_uid”:“320-000002”}]'

进入其各自的列。

但是,当我创建 VIEW 时,我无法让 JSON_TABLE 处理结果表

这是我创建的 View :

CREATE VIEW sf.lp AS
(SELECT * FROM sf.purchases);

这是不起作用的代码

SELECT pur.*, jt.*
FROM sf.lp AS pur,
JSON_TABLE (pur.items, '$[*]'
COLUMNS (
C_jt_id FOR ORDINALITY,
C_jt_item_uid VARCHAR(255) PATH '$.item_uid',
C_jt_item_name VARCHAR(255) PATH '$.name',
C_jt_qty INT PATH '$.qty',
C_jt_price DOUBLE PATH '$.price')
) AS jt;

响应是:错误代码:1210。JSON_TABLE 的参数不正确

我检查了以下内容:

  • 我减少了列数,看看是否会影响任何内容
  • 我检查了数据集,看看是否以某种方式引入了任何奇怪的字符
  • 这两个表以及列和数据类型相同。最重要的是,如果 TABLE (sf.purchases) 和 VIEW (sf.lp) 都是 JSON 类型,则 items 是 JSON 类型
  • 表和 View 都使用字符集 latin 1 和排序规则 latin1-swedish_ci
  • 我已运行 JSON_STORAGE_SIZE 来验证表中的项目是否符合 JSON 格式
SELECT pur.items,  
JSON_STORAGE_SIZE(pur.items)
FROM sf.lp pur

任何想法或帮助将不胜感激。

最佳答案

我认为您因为没有人回答您的问题而感到难过,所以,我决定回来帮助其他人。

我一直在努力解决这个问题,并弄清楚为什么有时 JSON_TABLE 不理解源 JSON。

就我而言,我将另一个选择结果 JSON 字段发送到 CROSS JOIN JSON_TABLE 并收到此错误。

我认为 MySQL 没有将结果字段识别为 json,因此,我在结果字段上使用 JSON_EXTRACT 来“强制”在 JSON_TABLE 语句中进行这种识别。

就像:

...交叉连接 JSON_TABLE(JSON_FIELD->'$[*]', COLUMNS ...)

我希望能帮助别人:)

关于json - 错误代码 : 1210. JSON_TABLE 的参数不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63669435/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com