如何将两列值连接成JSON格式?

问题描述 投票:0回答:2

我想将

CONCAT
两列值转换为
string
JSON
格式的一个字符串。但是我对查询中的引号和双引号有问题。如何修复我的查询以使其成功产生预期结果?

$concat = "CONCAT('{"CODE":"pm_r.CODE","NAME":"pm_r.NAME"}') AS `JSON`"
$query  = $this->db->query(
    'SELECT pm_r.ID_REQUIREMENT, '.$concat.'FROM `pm_requirement` `pm_r`'
);

预期的结果应该是:

ID_REQUIREMENT   JSON
ID001            {"CODE":"001","NAME":"Shane"}
mysql concatenation
2个回答
0
投票

为了避免引用冲突,解决方案是使用 php

HEREDOC
字符串

我还修复了您

CONCAT
,其中要连接的列的名称应与字符串的固定部分分开。

$query  = $this->db->query(<<<EOT
    SELECT 
        pm_r.ID_REQUIREMENT,
        CONCAT('{"CODE":"', pm_r.CODE, '","NAME":"', pm_r.NAME, '"}') AS `JSON`
        FROM `pm_requirement` `pm_r`
EOT
);

0
投票

$concat = "CONCAT('{"CODE":"pm_r.CODE","NAME":"pm_r.NAME"}') AS

JSON
"

尝试更改 $concat 查询,如下所示: $concat = "CONCAT('{"CODE":"', pm_r.CODE ,'","NAME":"', pm_r.NAME, '"}') AS JSON"

请类似于我的情况,它可以使其成为json信息,请看下面我的数据库查询的截图: enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.