如何将双引号ID转换为单引号ID,以便在Postgres中可查询?

时间:2019-01-16 06:39:40

标签: sql postgresql

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"

1 个答案:

答案 0 :(得分:0)

我还建议将其设置为整数(int)。当您放置替换物时,它起作用吗?

replace (trim(data::json ->> 'color_ids','[]'), '"', '')