2016-07-31 112 views
0

我有一个产品列表,其中包含需要从中提取属性的未清晰描述。PostgreSQL:如果column1包含x,y或z将column2设置为x,y或z

即:

'大(蓝色)罐顶'

“配有西隧。 w ^短裤

需求,成为:

 
size color style  gender 
large Blue Tank top 
Medium White Shorts women's 

可能变化的名单相当长。有没有通过Postgres的一个方式说:

如果描述包含[蓝,白,红]颜色设定为[返回发现颜色]

回答

1

有多种方式。最直接的是使用case

select (case when description like '%blue%' then 'blue' 
      when description like '%white%' then 'white' 
      when description like '%red%' then 'red' 
     end) as color 
+1

“弗雷德里克Wrathwhite的波澜海豚”将匹配所有三个。 – NovaDenizen

+0

非常感谢。我会试一试。 –

+0

@NovaDenizen。 。 。事实上,它只会匹配“蓝色”,因为一个“案例”选择了第一个匹配。对于OP来说这是一个值得评论的问题:当有多场比赛时,该怎么办。 –

相关问题