MySQL Escape 查询结果中的双引号

Posted

技术标签:

【中文标题】MySQL Escape 查询结果中的双引号【英文标题】:MySQL Escape double quotes in query result 【发布时间】: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查询中完成, 谢谢...

【问题讨论】:

【参考方案1】:

你尝试过这样的事情吗?

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

【讨论】:

我在等待答案时发现了相同的功能 :) 您确认我走在正确的轨道上!谢谢。 现在对我来说还不算太晚,我看到我已经在一个查询中使用了该解决方案...我想是时候上床睡觉了:P 无论如何,谢谢!

以上是关于MySQL Escape 查询结果中的双引号的主要内容,如果未能解决你的问题,请参考以下文章

vba 如何去掉返回结果两端的双引号?

Solr查询中的双引号

【SQL语句】-MYSQL中关于引号的使用

Oracle Alias 中的双引号

Java - '\' 未用于转义字符串中的双引号“

使用 R 中的 sqlQuery 处理 SQL select 语句中的双引号