mysql - избегайте экранирования двойных кавычек в функциях json

0

Когда я выдаю...

select JSON_REPLACE('{"tbl" : "cnf"}', '$', '{"tbl":"cnf4"}');

Я получаю следующее:

+--------------------------------------------------------+
| JSON_REPLACE('{"tbl" : "cnf"}', '$', '{"tbl":"cnf4"}') |
+--------------------------------------------------------+
| "{\"tbl\":\"cnf4\"}"                                   |
+--------------------------------------------------------+

И он хранится в моей базе данных так же, как и с обратной косой чертой. Я хочу, чтобы в моей базе данных не было обратных косых черт. Как я могу это достичь?

Я ожидаю ответа вроде: {"tbl": "cnf4"}

  • 0
    Итак, вы хотите исправить вставку или вам нужно позаботиться о данных после выбора? Или оба?
Теги:

1 ответ

0
Лучший ответ

Оберните в JSON_UNQUOTE

select JSON_UNQUOTE(JSON_REPLACE('{"tbl" : "cnf"}', '$', '{"tbl":"cnf4"}'));
+----------------------------------------------------------------------+
| JSON_UNQUOTE(JSON_REPLACE('{"tbl" : "cnf"}', '$', '{"tbl":"cnf4"}')) |
+----------------------------------------------------------------------+
| {"tbl":"cnf4"}                                                       |
+----------------------------------------------------------------------+
1 row in set (0.0005 sec)
  • 0
    Спасибо, именно то, что я искал.
  • 0
    Как насчет этого случая, почему не выводить в кавычки значение нового замещающего объекта json? select JSON_UNQUOTE(JSON_REPLACE('{"tbl" : "shouldBeReplaced"}', '$.tbl', '{"newKey":"newValue"}'));
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню