MariaDB COLUMN_JSON查询返回二进制文件

时间:2016-06-27 10:15:18

标签: json mariadb

我一直在尝试使用动态列和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字段。我可能仍然可以使它工作,但这需要多个查询,而不是只有一个。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

尝试:

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"}' } ]