MySQL Избегайте двойных кавычек в результате запроса

У меня есть проблема CONCATENATION относительно кавычек. В моей базе данных у меня есть текст с одинарными и двойными кавычками, а затем я создаю строку JSON с помощью CONCAT,

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"}

Как видите, «Джо «Хаммер» Смит» создаст недопустимую строку json.

ВОПРОС

Есть ли способ в SQL избежать кавычек (в CONCAT)? поэтому я получаю этот результат:

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

Помните, что это не на стороне PHP, это нужно сделать в SQL-запросе,
Спасибо...


person Max Kielland    schedule 20.02.2011    source источник


Ответы (1)


Вы пробовали что-то подобное?

CONCAT('{"',REPLACE(a,'"','\\"'),'":"',REPLACE(b,'"','\\"'),'"}')
person Mārtiņš Briedis    schedule 20.02.2011
comment
Нашел такую ​​же функцию, пока ждал ответа :) Вы подтвердили, что я на правильном пути! Спасибо. - person Max Kielland; 21.02.2011
comment
Для меня еще не слишком поздно, я увидел, что уже использовал это решение в одном запросе... Думаю, пора ложиться спать: P В любом случае спасибо! - person Max Kielland; 21.02.2011