如何创建一个sql脚本以将多列数据作为json迁移到单个列中

时间:2015-08-06 13:11:40

标签: mysql sql database

数据库:mysql 5.6

早些时候,我有一个包含列的表格:

     1) id (int)
     2) name (varchar)
     3) returnEnabled (boolean)
     4) return type (varchar)
     5) immediateReturn (varchar)

现在我们有一个包含1,2列的表,以及一个名为actions的列,它包含列3,4,5的值作为json字符串。

有人可以建议如何使用sql脚本将数据迁移到新的表模式吗?

早期的表格如下:

enter image description here

现在表格如下:

enter image description here

2 个答案:

答案 0 :(得分:0)

您可以使用CONCAT函数来构建您的JSON,例如:

SELECT 
  CONCAT('{', 
           '"returnANabled":', IF(return_enabled = 0, 'false', 'true'),
         '}') AS actions
FROM EarlierTable

答案 1 :(得分:0)

select 
    name,
    created,
    updated
    CONCAT (
        '{"returnEnabled":', 
        IF(returnEnabled = 0, 'false', 'true'), 
        ',"immediateRpi":',
        IF(immediateReturn = '0', 'false', 'true'),
        ',"ReturnType":"',return_type,'"}'
    ) as actions
from old_table;