MySQL Escape查询结果中的双引号

Max*_*and 4 mysql quotes escaping concatenation

我有关于引号的CONCATENATION问题.在我的数据库中,我有单引号和双引号文本,然后我用CONCAT增加了一个JSON字符串,

CONCAT('{"',a,'":"',b,'"}')
Run Code Online (Sandbox Code Playgroud)

假设我们有以下数据:

a           b
Phrase      Monica's mirror
Phrase      Joe "Hammer" Smith
Phrase      Oo-la-laaa
Run Code Online (Sandbox Code Playgroud)

串联将是

{"Phrase":"Monica's mirror"}
{"Phrase":"Joe "Hammer" Smith"}
{"Phrase":"Oo-la-laaa"}
Run Code Online (Sandbox Code Playgroud)

你可以看到'Joes'Hammer"Smith"会创建一个无效的json字符串.

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

{"Phrase":"Monica's mirror"}
{"Phrase":"Joe \"Hammer\" Smith"}
{"Phrase":"Oo-la-laaa"}
Run Code Online (Sandbox Code Playgroud)

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

Mār*_*dis 10

你尝试过这样的事吗?

CONCAT('{"',REPLACE(a,'"','\\"'),'":"',REPLACE(b,'"','\\"'),'"}')
Run Code Online (Sandbox Code Playgroud)