【问题标题】:How to cast value as JSON in MariaDB?如何在 MariaDB 中将值转换为 JSON?
【发布时间】:2021-10-01 07:41:13
【问题描述】:

我想提取一个带有表名和每个表内的列的 JSON。

这是我的 SQL:

SELECT
    JSON_OBJECTAGG(table_name, columns)
FROM (
    SELECT
        table_name,
        JSON_OBJECTAGG(column_name, data_type) as columns
    FROM `COLUMNS`
    WHERE
        `TABLE_SCHEMA` = 'my_db'
    GROUP BY table_name
) table_columns

问题出在JSON_OBJECTAGG(table_name, columns),列变成了字符串。如何将其转换为 JSON?

【问题讨论】:

  • 内部查询已经在table_name 上聚合,所以我看不出你想用外部查询实现什么。这是我想出的dbfiddle(由于 dbfiddle 限制而改变了TABLE_SCHEMA 标准)。这是你想要的吗?

标签: json casting mariadb mariadb-10.5


【解决方案1】:

使用JSON_EXTRACT(column_value_in_json, '$')

SELECT
    JSON_OBJECTAGG(table_name,
        JSON_EXTRACT(
           columns,
           '$'
        )
    )
FROM (
    SELECT
        table_name,
        JSON_OBJECTAGG(column_name, data_type) as columns
    FROM `COLUMNS`
    WHERE
            `TABLE_SCHEMA` = 'my_db'
    GROUP BY table_name
) table_columns

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-24
    • 2017-06-06
    • 2019-11-01
    • 1970-01-01
    相关资源
    最近更新 更多