【问题标题】:MySQL GROUP_CONCAT add slashesMySQL GROUP_CONCAT 添加斜杠
【发布时间】:2018-12-04 20:36:56
【问题描述】:

我正在尝试以 JSON 格式返回投票结果。我的第一个 SQL 是这样的

SELECT
fa.pollQuestion_id, 
q.title, 
JSON_OBJECT(
    'text', qo.title, 
    'total', COUNT(fao.pollQuestionOption_id)
) values
FROM pollFillAnswers fa 
INNER JOIN pollFills f ON fa.pollFill_id = f.pollFill_id
INNER JOIN pollQuestions q ON fa.pollQuestion_id = q.pollQuestion_id
INNER JOIN pollFillAnswerOptions fao ON fao.pollFillAnswer_id = 
fa.pollFillAnswer_id 
WHERE f.poll_id = 17 AND fa.type IN (3,4,5) 
GROUP BY fao.pollQuestionOption_id;

此 SQL 返回类似的内容:

pollQuestion_id 标题值

163 题 1 {"text": "No", "total": 599}

163 题 1 {"text": "Si", "total": 258}

在我的第二个 SQL 中,我使用 GROUP BY pollQuestion_idGROUP_CONCAT(values) 将结果与此 SQL 聚合

SELECT JSON_OBJECT(
        'title', result.title, 
        'values', GROUP_CONCAT(values)
    ) answers 
    FROM (
        SELECT
            q.title,
            JSON_OBJECT(
                'text', qo.title, 
                'total', COUNT(fao.pollQuestionOption_id)
            ) values
        FROM pollFillAnswers fa 
        INNER JOIN pollFills f ON fa.pollFill_id = f.pollFill_id
        INNER JOIN pollQuestions q ON fa.pollQuestion_id = q.pollQuestion_id
        INNER JOIN pollFillAnswerOptions fao ON fao.pollFillAnswer_id = fa.pollFillAnswer_id 
        WHERE f.poll_id = 17 AND fa.type IN (3,4,5) 
        GROUP BY fao.pollQuestionOption_id
    ) AS result 
    GROUP BY result.pollQuestion_id;

结果如下

163 {"title": "Question 1", "values": "{\"text\": \"No\", \"total\": 599},{\"text\": \"Si\", \"total\": 258}"}

group_contact() 在 JSON 中的所有字符串中添加斜杠,为什么?我尝试使用REPLACE()JSON_UNQUOTES()删除斜线,但我无法消除这种行为。

【问题讨论】:

    标签: mysql group-concat


    【解决方案1】:

    请尝试以下代码一次。如果您不需要,请将其替换为 ''。

    GROUP_CONCAT(REPLACE(values, ',', '\\,')) 
    

    【讨论】:

    • 我想消除斜线,我在帖子中说REPLACE函数不起作用,
    • 如果不适合您,请使用 stripslashes() 检查一次,然后请分享架构,以便我可以在最后尝试它,因为通常替换在所有场景中都有效。
    • 我必须在存储过程中完成所有工作。我不能使用其他语言。
    • 请与测试数据共享您的架构,以便我可以为您做同样的事情。
    猜你喜欢
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-29
    • 2012-01-12
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多