遇到非法格式的动态列字符串

时间:2016-03-18 15:46:56

标签: mysql json mariadb

我正在尝试在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一词的列。

1 个答案:

答案 0 :(得分:1)

迟到总比没有......

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选择其中一列。