我正在使用JSON表,并且遇到了一个问题。我得到以下错误:
错误代码: 1210。不正确的JSON_TABLE参数
我在AWS上使用MySQL引擎版本8.0.20和MySQL工作台
当我直接在表(sf.purchases)之外使用JSON命令时,我能够获得预期的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;
A转换‘{“”qty“:"1","name":"Test","price":"59.99","item_uid":"320-000002"}’
进入各自的列中。
但是,当我创建一个视图时,我无法让JSON_TABLE处理结果表
下面是我创建的视图:
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;
响应是: Error Code: 1210。不正确的JSON_TABLE参数
我检查了以下内容:
,
,
),则JSON是JSON类型的
SELECT pur.items,
JSON_STORAGE_SIZE(pur.items)
FROM sf.lp pur
如有任何意见或帮助,将不胜感激。
发布于 2021-11-21 22:32:28
我想你很难过,因为没有人回答你的问题,所以,我决定回来帮助别人。
我一直在努力解决这个问题,并弄明白了为什么有时JSON_TABLE不理解源JSON。
在我的例子中,我发送了另一个select结果JSON字段,以交叉连接JSON_TABLE并获得此错误。
我认为MySQL没有将结果字段识别为json,因此,我在结果字段上使用了JSON_EXTRACT来“强制”在JSON_TABLE语句中进行识别。
就像:
... CROSS JOIN JSON_TABLE(JSON_FIELD->'$[*]', COLUMNS ...)
我希望能帮助某人:)
https://stackoverflow.com/questions/63669435
复制相似问题