我找不到解决方案的非常简单的问题。
我有一个简单的JSON字符串:
{
"A/B/C":"Random value"
}
它存储在MySQL数据库中。我正在尝试使用JSON_EXTRACT
来检索数据。
SELECT
JSON_EXTRACT(`json_data`, "$.A/B/C") AS 'A/B/C'
FROM `MyTable`
WHERE 1
由于斜杠,这当然会引发错误。如何在不将斜杠从原始JSON删除的情况下对其进行查询?
答案 0 :(得分:1)
您可以通过在双引号中引用密钥名称来获得所需的结果;这是必需的,因为它包含非法的路径字符(请参见manual)。这意味着您需要将整体路径用单引号引起来:
SET @json = '{
"A/B/C":"Random value"
}'
;
SELECT JSON_EXTRACT(@json, '$."A/B/C"') AS 'A/B/C'
输出:
A/B/C
"Random value"