[英]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 社區中提供了答案,他的回復鏈接如下。
引用:
您需要使用兩個轉義字符。 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.