programing

마리아에서 JSON_TABLE이 있는 JSON 문자열 이스케이프 해제DB

goodsources 2023. 8. 19. 10:14
반응형

마리아에서 JSON_TABLE이 있는 JSON 문자열 이스케이프 해제DB

문제가 있습니다.JSON_TABLE기능은 MariaDB 10.6.5에 있습니다.내 질문은 다음과 같습니다.

SET @data = '[{"Data": "<root language=\\"de\\"></root>"}]';

SELECT
  data
FROM JSON_TABLE (@data, '$[*]' COLUMNS (data text PATH '$.Data')) AS t;

XML 문자열이 반환되지만 제대로 이스케이프 해제되지는 않습니다.

<root language=\"de\"></root>

그때 사용할 때JSON_VALUE대신:

SET @data = '[{"Data": "<root language=\\"de\\"></root>"}]';

SELECT
  JSON_VALUE(@DATA, '$[0].Data');

탈출하지 못한 문자열을 다시 가져옵니다.

<root language="de"></root>

MySQL 8.0.26 서버에서 동일한 작업을 수행하면 예상대로 작동합니다.

SET @data = '[{"Data": "<root language=\\"de\\"></root>"}]';

SELECT
  data
FROM JSON_TABLE (@data, '$[*]' COLUMNS (data text PATH '$.Data')) AS t;

-- correct:
-- <root language="de"></root>

SELECT
  JSON_VALUE(@data, '$[0].Data');

-- correct:
-- <root language="de"></root>

제가 보기에 이 행동의 차이는 MariaDB 측의 버그입니다.MariaDB에서 작동하는 방법에 대한 힌트가 있습니까?

언급URL : https://stackoverflow.com/questions/70564550/unescape-json-strings-with-json-table-in-mariadb

반응형