Строка JSON - включить одинарные кавычки в базу данных MySQL - PullRequest
0 голосов
/ 29 октября 2018

У меня есть тип JSON, хранящийся в таблице MySQL. Но если значение данных содержит одинарную кавычку, произойдет сбой с неверной грамматикой SQL. Пожалуйста, найдите запрос SQL:

Мы можем решить эту проблему, если добавим escape-символ перед одинарными кавычками. Но есть ли в MYSQL функция JSON, которую можно легко использовать? Мы должны предоставить запрос из другого приложения, написанного на Java, и мы не хотели бы изменять программу, если это возможно.

INSERT INTO integration.staging_correspondence_inbound_invoice (correlation_id,interface_name,event_status,event_context,created_by,created_date) values ('1540626495812-0-1','invoice','EXCEPTION_CAUGHT',JSON_ARRAY('[ {
  "exceptionRootCauseMessage" : "UpdateFailedException: Unable to update correspondence for correspondence id '68000'.Exception:{null\n> Record set for Correspondence with ids 68000 contains no records.\n>> }",
  "inExchangeBody" : null,
  "exceptionMessage" : "UpdateFailedException: Unable to update correspondence for correspondence id '68000'.Exception:{null\n> Record set for Correspondence with ids 68000 contains no records.\n>> }"
}, { }, {
  "EXCEPTION_CAUGHT" : "Unable to update correspondence for correspondence id '68000'.Exception:{null\n> Record set for Correspondence with ids 68000 contains no records.\n>> }"
} ]'),'Integration_User',NOW())

Мы используем MySQL 5.7. В приведенном выше запросе "event_context" - это поле типа JSON.

1 Ответ

0 голосов
/ 29 октября 2018

Вы можете взглянуть на функцию MySql Quote . Это должно решить вашу проблему. Согласно документации:

-> Цитата -> (-> str ->) ->

Функция достигает этого, заключая строку в одинарные кавычки, и перед каждой отдельной кавычкой, обратной косой чертой, ASCII NUL и control-Z с обратной косой чертой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...