PostgreSQL版本:10.3
产品架构
id integer
data text
颜色架构
id integer
name text
产品的颜色以色号数组形式存储在数据中,例如['1','2']。
我需要一个查询,我可以获取特定产品的颜色ID和名称。 尝试过类似的操作并出现错误:
select id,name from colors where id in (select trim(data::json ->> 'color_ids','[]') from products where id = 1);
错误:运算符不存在:整数=文字
我尝试过:
查询:
select data::json ->> 'color_ids' from products where id = 1;
结果:
["2","5","6","14"]
查询:
select trim(data::json ->> 'color_ids','[]') from products where id = 1;
结果:
"2","5","6","14"
答案 0 :(得分:0)
我还建议将其设置为整数(int)。当您放置替换物时,它起作用吗?
replace (trim(data::json ->> 'color_ids','[]'), '"', '')