MariaDB动态列嵌套

时间:2015-06-05 01:27:04

标签: mariadb nosql

我一直在寻找这个问题几个小时。我已经设置了一个MariaDB服务器并且正在实现动态列,我知道该怎么做,但我似乎无法找到如何超过一个级别。

INSERT INTO Invoices (Invoice) VALUES (
    COLUMN_CREATE ('Monthly Fee', 500)
);

这是有效的,但我需要的东西可以让我有类似下面的SELECT for JSON:

{
    "services": {
        "Monthly Fee": 500,
        "OnSite": {
            "Units": 10,
            "Rate": 35
        },
        "Mileage": {
            "Units": 181.8,
            "Rate": 0.5
        },
        "Hard Drive Purchase": {
            "Units": 1,
            "Rate": 68.99
        }
    }
}

我无法弄清楚如何将键的值作为另一个具有自己的键值的动态列:值对。

我试过了:

INSERT INTO Invoices (Invoice) VALUES (
    COLUMN_CREATE ('Monthly Fee', 500,
        'OnSite',
        COLUMN_CREATE('Units',10,'Rate','35')
    )
);

在我需要的地方嵌套。我希望这是可能的,我只是有一个简单的语法错误。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

对于任何可能想要解决这个问题的人:

这是语法错误。以下语法为我提供了所需内容:

SET @tmp = column_create (
    'services',
    column_create (
        'RMM',
        column_create ('Rate', 650),
        'OnSite',
        column_create ('Units', 10, 'Rate', 35),
        'Mileage',
        column_create ('Units', 181.8, 'Rate', 0.50),
        'Hard Drive Purchase',
        column_create ('Units', 1, 'Rate', 68.99)
    )
);

SELECT
    COLUMN_JSON (@tmp);