JSON字符串-在MySQL数据库中包含单引号

时间:2018-10-29 05:16:00

标签: mysql sql database

我在MySQL表中归档了JSON类型。但是,如果数据值包含单引号,则无法说出错误的SQL语法。请找到SQL查询:

如果在单引号前添加转义字符,则可以解决此问题。但是,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 :(得分:0)

您可以看一下MySql Quote函数。它应该可以解决您的问题。 根据文档:

->引用->(-> str->)->

  

该函数通过用单引号将字符串引起来来实现此目的,   并在每个单引号,反斜杠,ASCII NUL和control-Z之前加上   加上反斜杠。