我有关于引号的CONCATENATION问题。 在我的数据库中,我有单引号和双引号文本,然后我用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查询中完成,
谢谢......
答案 0 :(得分:9)
你尝试过这样的事吗?
CONCAT('{"',REPLACE(a,'"','\\"'),'":"',REPLACE(b,'"','\\"'),'"}')