首页/数据/SQL 速查/-> 与 ->> 的区别与比较场景
函数速查60 条

-> 与 ->> 的区别与比较场景

JSON 取值的两个运算符:-> 返回 JSON 类型(字符串带引号、可用于后续 JSON 函数),->> 返回文本(用于比较与展示)。

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

对比

对比
-- MySQL / PostgreSQL 语义一致
SELECT doc->'$.status'   AS as_json,   -- '"paid"'
       doc->>'$.status' AS as_text;   -- 'paid'

-- 过滤:用 ->>
SELECT * FROM orders WHERE doc->>'$.status' = 'paid';
->返回 JSON/JSONB 类型,适合继续套 JSON 函数、JSON_CONTAINS
->>返回文本,适合 WHERE 比较、字符串函数、GROUP BY
MySQL 版本-> / ->> 自 5.7.13 起可用
PostgreSQL 里 jsonb 与 text 直接相等比较会报 operator does not exist,必须用 ->> 取文本。

易错点

  • 对 jsonb 列建表达式索引要按 ->> 的文本形式建(如 (doc->>'status')),索引才能匹配查询谓词
  • MySQL 中对 JSON 列直接 WHERE doc->'$.status' = 'paid' 依赖隐式转换,行为随版本变化,显式 ->> 更稳

数据来源与参考

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