MariaDB COLUMN_JSON 查询 returns 二进制

MariaDB COLUMN_JSON query returns binary

我一直在尝试将动态列与 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,就像文档中建议的那样。 查询被接受,table 更新。如果我 COLUMN_CHECK 结果,它告诉我没问题。

但是当我尝试 select:

"SELECT COLUMN_JSON(params) AS params FROM savedDisplays;

我收到一个 {type: "Buffer", data: Array} 包含返回给我的二进制文件,而不是 {"type":"tab", "col0":"champions", "col1":"averageResults"} 我预计。

编辑:我可以很好地使用COLUMN_GET,但我需要参数字段中的每一列,并且我需要检查类型属性首先要知道 JSON / params 字段中有什么类型和多少列。我也许可以让它继续工作,但这需要多个查询,而不是一个。

有什么想法吗?

尝试:

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

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

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