【问题标题】:MySQL Escape double quotes in query resultMySQL Escape 查询结果中的双引号
【发布时间】:2011-06-30 22:44:21
【问题描述】:

我有一个关于引号的连接问题。 在我的数据库中,我有单引号和双引号文本,然后我用 CONCAT 构建了一个 JSON 字符串,

CONCAT('{"',a,'":"',b,'"}')

假设我们有以下数据:

a           b
Phrase      Monica's mirror
Phrase      Joe "Hammer" Smith
Phrase      Oo-la-laaa

连接将是

{"Phrase":"Monica's mirror"}
{"Phrase":"Joe "Hammer" Smith"}
{"Phrase":"Oo-la-laaa"}

如您所见,'Joes "Hammer" Smith' 将创建一个无效的 json 字符串。

问题

SQL 中有没有办法转义引号(在 CONCAT 中)?所以我得到了这个结果:

{"Phrase":"Monica's mirror"}
{"Phrase":"Joe \"Hammer\" Smith"}
{"Phrase":"Oo-la-laaa"}

记住,这不是在PHP端,它需要在SQL查询中完成,
谢谢...

【问题讨论】:

    标签: mysql escaping concatenation quotes


    【解决方案1】:

    你尝试过这样的事情吗?

    CONCAT('{"',REPLACE(a,'"','\\"'),'":"',REPLACE(b,'"','\\"'),'"}')
    

    【讨论】:

    • 我在等待答案时发现了相同的功能 :) 您确认我走在正确的轨道上!谢谢。
    • 现在对我来说还不算太晚,我看到我已经在一个查询中使用了该解决方案...我想是时候上床睡觉了:P 无论如何,谢谢!
    猜你喜欢
    • 2016-05-13
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 2014-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-08
    相关资源
    最近更新 更多