mysql 如何将两个列的值转换为JSON格式?

nbysray5  于 5个月前  发布在  Mysql
关注(0)|答案(2)|浏览(55)

我想将CONCAT两列值转换为JSONstring字符串。但是我在查询中遇到了引号和双引号的问题。如何修复我的查询,使其成功产生预期的结果?

$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"}

whhtz7ly

whhtz7ly1#

为了避免引号冲突,一个解决方案是使用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
);

字符串

bd1hkmkf

bd1hkmkf2#

$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

相关问题