我在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类型字段。
答案 0 :(得分:0)
您可以看一下MySql Quote函数。它应该可以解决您的问题。 根据文档:
->引用->(-> str->)->
该函数通过用单引号将字符串引起来来实现此目的, 并在每个单引号,反斜杠,ASCII NUL和control-Z之前加上 加上反斜杠。