MySQL
MySQL
SELECT JSON_EXTRACT(doc, '$.user.name') FROM events;
SELECT doc->'$.user.name' FROM events; -- 返回 JSON(字符串带引号)
SELECT doc->>'$.user.name' FROM events; -- 返回文本(去引号)PostgreSQL
PostgreSQL
SELECT doc->'user'->>'name' FROM events; -- jsonb -> 文本
SELECT doc#>>'{user,name}' FROM events; -- 路径数组取文本
SELECT jsonb_path_query_first(doc, '$.user.name') FROM events; -- PG 12+| MySQL | JSON_EXTRACT(doc, path);-> 返回 JSON 值、->> 返回文本 |
|---|---|
| PostgreSQL | -> 取键/下标返回 jsonb;->> 返回 text;#> / #>> 走路径数组 |
| 路径不存在 | 返回 NULL(不是报错) |