sql >> Databasteknik >  >> RDS >> Mysql

MySQL JSON_OBJECT() med några fält som redan innehåller JSON String

Den bästa lösningen jag hittade är att använda JSON_MERGE() i kombination med JSON_OBJECT() och 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. Integrering av verktyg för att hantera PostgreSQL i produktion

  2. Hur lägger man till en serie strängar i inkrementerande id i vilken tabell som helst?

  3. SQL -- Fyll i datum som inte har resultat

  4. Från lagrad procedur, returnera OUT-parameter &OUT-markör &analysresultat (Oracle)