我正在尝试在 MariaDB 中使用 JSON。我的表格有两列:
ID - INT。 PK。自动递增。
JsonText - BLOB
我已将 Json 插入到 blob 列中,它看起来像这样:
{
"Fields" : {
"CalPeriod" : "1",
"CalYear" : "2014",
"CompanyCode" : "E009",
"CreditDebitInd" : "H",
"FiscalYear" : "2014",
"MaxPostDate" : "2014-01-14T00:00:00",
"MinPostDate" : "2014-01-14T00:00:00"
}
}
但是,当我尝试选择数据并将其解析回来时,我收到了标题中发布的错误。
这是我的查询:
SELECT COLUMN_JSON(JsonText) FROM alliance.jsontest;
我不明白。我什至完全从这个网站复制了代码,但它仍然抛出相同的错误,或者它只是返回带有 BLOB 一词的列。
最佳答案
迟到总比不到好……
函数 COLUMN_JSON 旨在与动态列一起使用。 将 json 字符串插入 blob 列不会使其成为动态列。
要在此类列中插入数据,需要使用COLUMN_CREATE。 例如
INSERT INTO alliance.jsontest (JsonText)
VALUES (COLUMN_CREATE(
"CalPeriod", "1",
"CalYear", "2014",
"CompanyCode", "E009",
"CreditDebitInd", "H",
"FiscalYear", "2014",
"MaxPostDate", "2014-01-14T00:00:00",
"MinPostDate", "2014-01-14T00:00:00"
));
然后您可以使用 COLUMN_JSON 或使用 COLUMN_GET 选择其中一列。
关于mysql - 遇到动态列字符串格式非法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36088698/