Mysql 5.7.22: как выбрать значение json, если его ключ содержит символ точки?

Итак, структура JSON выглядит так:

{
  "pixel.uuid": "1ca86b7d7505c48363b2a5d9dde0c7e4",
  "innerWidth": "1440"
}

Вопрос: Как выбрать «pixel.uuid»? Я пробовал эти комбинации:

select json->"$.pixel.uuid" from TrackingData_experimental

select json->"$.pixel\.uuid" from TrackingData_experimental

select json->{"$.pixel.uuid"} from TrackingData_experimental

select JSON_EXTRACT(json, '$.pixel.uuid') from TrackingData_experimental

Но безуспешно. Спасибо!

1
0
72
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Разделите ключ двойными кавычками:

mysql> select json->'$."pixel.uuid"' from TrackingData_experimental;
+------------------------------------+
| json->'$."pixel.uuid"'             |
+------------------------------------+
| "1ca86b7d7505c48363b2a5d9dde0c7e4" |
+------------------------------------+

Если вы хотите, чтобы значение возвращалось без кавычек, сделайте следующее:

mysql> select json->>'$."pixel.uuid"' from TrackingData_experimental;
+----------------------------------+
| json->>'$."pixel.uuid"'          |
+----------------------------------+
| 1ca86b7d7505c48363b2a5d9dde0c7e4 |
+----------------------------------+

Другие вопросы по теме