MariaDB COLUMN_JSON查询返回二进制

马丁·洛克·维尔

我一直在尝试将动态列与MariaDB v10.1.12的实例一起使用。

首先,我发送以下查询:

INSERT INTO savedDisplays (user, name, body, dataSource, params) VALUES ('Marty', 'Hey', 'Hoy', 'temp', COLUMN_CREATE('type', 'tab', 'col0', 'champions', 'col1', 'averageResults'));

正如文档所建议的那样,将params的类型定义为blob。接受查询,更新表。如果我COLUMN_CHECK结果,它告诉我很好。

但是当我尝试选择时:

"SELECT COLUMN_JSON(params) AS params FROM savedDisplays;

我得到了一个{type:“ Buffer”,data:Array}包含返回给我的二进制文件,而不是我期望的{“ type”:“ tab”,“ col0”:“ champions”,“ col1”:“ averageResults”} 。

编辑:我可以使用COLUMN_GET很好,但是我需要params字段中的每一列,并且我需要首先检查type属性,以了解JSON / params字段中的种类和数量。我可能可以使它仍然工作,但是这将需要多个查询,而不是仅一个。

有任何想法吗?

webolizzer

尝试:

SELECT CONVERT(COLUMN_JSON(params) USING utf8) AS params FROM savedDisplays

在MariaDB 10中,这适用于每个表:

SELECT CONVERT(COLUMN_JSON(COLUMN_CREATE('t', text, 'v', value)) USING utf8)
    as json FROM test WHERE 1 AND value LIKE '%12345%' LIMIT 10;

在node.js中输出

[ TextRow { json: '{"t":"test text","v":"0.5339044212345805"}' } ]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章