我一直在尝试将动态列与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字段中的种类和数量。我可能可以使它仍然工作,但是这将需要多个查询,而不是仅一个。
有任何想法吗?
尝试:
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] 删除。
我来说两句