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

PostgreSQL Jsonb查询报错:tenant_id列不存在及字符匹配异常

问题解决方法

1. 修复「column tenant_id does not exists」报错

你的SQL里用了双引号"tenant_id",PostgreSQL中双引号会被解析为数据库对象名(比如列名、表名),而非字符串值。把双引号换成单引号即可:

SELECT raw_user_meta_data
FROM auth.users
WHERE raw_user_meta_data->'tenantId'::text = 'tenant_id'
LIMIT 5;

2. 解决带字母的匹配值无法生效的问题

->操作符返回的是jsonb类型,纯数字字符串能和它隐式转换匹配,但带字母的字符串无法完成隐式转换,导致匹配失败。推荐两种可靠写法:

方法一:用->>直接提取文本类型

->>操作符会直接将jsonb字段的值转为text类型,无需额外转换,代码最简洁:

SELECT raw_user_meta_data
FROM auth.users
WHERE raw_user_meta_data->>'tenantId' = '1233212112cxy3'
LIMIT 5;

方法二:显式转换jsonb值为文本

如果坚持用->,需要把提取的jsonb值整体转为text,注意匹配值要额外加一层双引号(因为jsonb转text会保留原字符串的引号):

SELECT raw_user_meta_data
FROM auth.users
WHERE (raw_user_meta_data->'tenantId')::text = '"1233212112cxy3"'
LIMIT 5;

最优写法

优先选择->>操作符,避免转换陷阱:

SELECT raw_user_meta_data
FROM auth.users
WHERE raw_user_meta_data->>'tenantId' = '目标租户ID'
LIMIT 5;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 07:12:05