首页/数据/SQL 速查/JSON 路径语法与 jsonpath
本包目录(311 条)
查询基础33 条连接与子查询40 条聚合与窗口函数54 条
函数速查60 条
变更与事务52 条性能与执行计划72 条

JSON 路径语法与 jsonpath

路径表达式写法:MySQL 用 '$' 开头的路径字符串;PostgreSQL 运算符用键/数组路径,PG 12+ 的 jsonpath 与 MySQL 风格接近。

SQL 速查数据更新于 2026-10-12

MySQL 路径

MySQL 路径
SET @p = '$';
SELECT JSON_EXTRACT(doc, '$.a.b');       -- 嵌套键
SELECT JSON_EXTRACT(doc, '$[0]');        -- 数组下标
SELECT JSON_EXTRACT(doc, '$.items[2].sku');
SELECT JSON_EXTRACT(doc, '$.*');         -- 通配(部分函数支持)

PostgreSQL 路径

PostgreSQL 路径
SELECT doc->'a'->'b' FROM t;            -- 逐级取值
SELECT doc#>>'{a,b}' FROM t;             -- 路径数组
SELECT jsonb_path_query(doc, '$.items[2].sku') FROM t;   -- PG 12+ jsonpath
SELECT jsonb_path_query(doc, '$.items[*].sku') FROM t;
MySQL路径以 $ 开头:$.key、$[n]、$.a.b;'$' 表示整个文档
PostgreSQL运算符路径:键字符串或 text[];jsonpath 与 MySQL 语法相似
数组下标均从 0 开始

易错点

  • MySQL 路径撇号写错(如写成 $aa 或漏掉 $)会直接报 invalid path 错误,影响整条 SQL
  • PostgreSQL 的 #> 路径数组元素是文本,数组下标写为 '2' 这样的字符串元素,混用数字会让人困惑

数据来源与参考

  • MySQL 8.0 Reference Manual · JSON Path Syntax
  • PostgreSQL Documentation · JSON Functions and Operators
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌