You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL查询为何无法匹配表中对象?如何按email查询jsonb列用户

报错原因

  1. PostgreSQL 原生 SQL 语法不支持 == 作为相等判断运算符,仅支持单等号 =,这是你收到「==不是合法符号」报错的直接原因。
  2. 你使用 -> 操作符提取 jsonb 字段的返回值为 jsonb 类型,直接和字符串类型的查询参数 $1 做比较会触发类型不匹配错误,也就是你收到的「命令不存在」类报错。

正确查询写法

提取 jsonb 字段的文本值需要使用 ->> 操作符,该操作符返回值为 text 类型,可直接和字符串做各类匹配判断。

精确匹配邮箱

SELECT userAccount FROM users WHERE userAccount->>'email' = $1;

模糊匹配邮箱

-- $1 可传入带通配符的字符串,比如 '%@gmail.com'
SELECT userAccount FROM users WHERE userAccount->>'email' LIKE $1;

大小写不敏感正则匹配

-- $1 可传入正则表达式,匹配逻辑不区分大小写
SELECT userAccount FROM users WHERE userAccount->>'email' ~* $1;

内容的提问来源于stack exchange,提问作者newGrad coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 21:15:03