簡體   English   中英

MariaDB 從 JSON 文檔中提取帶有轉義字符的值

[英]MariaDB extract values with escaped characters from JSON Document

我正在使用 json_value 函數從傳遞給 Mariadb 數據庫的 json 文檔中提取值。 當文檔包含帶有轉義值的名稱/值對時,例如 "Item_Name":"60\" Table",該函數僅提取 60 並為文檔中的其余名稱/值對返回空值。這是一個示例

Set @json = '{"Item_Name":"60\" Table", "Item_ID":"1"}';

select json_value(@json,'$.Item_Name') as Item_Name
, json_value(@json,'$.Item_ID') as ID

這個查詢的結果是:

項目名 ID
60 無效的

不確定如何使用轉義字符提取值。

我也在 Mariadb 社區中發布了這個問題,並在那里得到了答案。 訣竅是添加一個額外的轉義字符。 Ian Gilfillan 在 Mariadb 社區中提供了答案,他的回復鏈接如下。

https://mariadb.com/kb/en/extract-values-with-escaped-characters-from-json-document/+comments/5799#comment_5799

引用:

您需要使用兩個轉義字符。 SQL 解析器將應用單個轉義,但您希望將轉義的字符串向下傳遞。 所以:

Set @json = '{"Item_Name":"60\\" Table", "Item_ID":"1"}';

select json_value(@json,'$.Item_Name') as Item_Name ,
json_value(@json,'$.Item_ID') as ID;
+-----------+------+
| Item_Name | ID   |
+-----------+------+
| 60" Table | 1    |
+-----------+------+

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM