MySQL 5.7 用 JSON_EXTRACT 取嵌套字段需以 $ 开头写路径数组下标从 0 起特殊键名加双引号建议先用 JSON_VALID 过滤取字符串值优先用 - 替代 JSON_UNQUOTE(JSON_EXTRACT())。MySQL 5.7 怎么用 JSON_EXTRACT 取出嵌套字段直接用 JSON_EXTRACT 拿值但路径写错就返回 NULL不是报错——这点特别容易让人误以为数据丢了。路径必须以 $ 开头比如取顶层键 name JSON_EXTRACT(json_col, $.name)数组下标从 0 开始$.items[0].price 才能取第一个元素的 price写成 [1] 就越界键名含空格或特殊字符得用双引号括起来JSON_EXTRACT(json_col, $.user id)如果字段本身是 NULL 或不是合法 JSONJSON_EXTRACT 也返回 NULL建议先用 JSON_VALID(json_col) 做过滤PostgreSQL 里怎么等效实现 - 和 - 的区别PostgreSQL 不用 JSON_EXTRACT而是靠操作符区分返回类型一个返 JSON 对象一个返文本字符串。json_col - data 返回 json 类型还能继续链式取值json_col - data 返回 text直接可参与字符串比较或拼接取数组元素用 - 0不是 [0]嵌套时连写比如 json_col - items - 0 - id如果路径不存在- 返回 NULL类型仍是 json- 返回 NULL类型是 text注意和空字符串 区分对性能敏感的查询避免在 WHERE 里反复调用 -可建生成列 索引ALTER TABLE t ADD COLUMN name_text TEXT GENERATED ALWAYS AS (data - name) STORED为什么 JSON_EXTRACT 返回带引号的字符串怎么去掉因为标准行为就是返回 JSON 类型值字符串会自动加双引号——这不是 bug是规范要求。你看到 value 是对的value 反而是错的。 RedClaw 百度推出的手机端万能AI Agent助手