sql >> データベース >  >> RDS >> Mysql

すでにJSON文字列を含むいくつかのフィールドを持つMySQLJSON_OBJECT()

    私が見つけた最善の解決策は、 JSON_MERGE()を使用することです。 JSON_OBJECT()およびCONCAT()と組み合わせて

    SELECT 
        T1.id, 
        CONCAT(
            '{"elements": [',
            GROUP_CONCAT(
                JSON_MERGE(
                    JSON_OBJECT(
                        'type',  T2.`type`,
                        'data',  T2.`data`
                    ),
                    CONCAT('{"info": ',  T2.`info`, '}')
                )
            ),
            ']}'
        ) AS `elements`,
    FROM `table` T1
    INNER JOIN `table2` T2
        ON T1.`id` = T2.`fk_t1_id`
    GROUP BY T1.`id`
    



    1. 関数ラッパーなしのクエリと比較して、SQL関数は非常に遅い

    2. 隠しフィールドデータはMysqlに挿入されていません

    3. MySQLで引用符を含むデータを保存する方法

    4. Oracleでサブ文字列を選択する方法は?