将LIKE用于两个单独的列输出

时间:2017-05-10 16:24:18

标签: postgresql amazon-redshift

我有两个表,我想用LIKE语句比较两个列表。但我不想输入文本字符串进行比较。所以不要使用:

WHERE a.column1 LIKE '%pattern1%' OR  a.column1 LIKE '%b.pattern2%'

我想告诉查询

WHERE a.column1 LIKE b.column1

我知道这远远不是最优的,使用多个LIKE但是出于这个查询的目的,这正是我需要做的。

请您确认这实际上是否可行,如果是,我应该使用什么语法?我在postgresql但也可以使用aws或presto替代品,虽然我想他们会更有限。

当尝试上面的例子时,我得到的结果为null。当试图将完整列表提取为文本并使用posix或任何数组函数时,我收到一条错误消息: '无效正则表达式:量词操作数无效'

非常感谢任何建议。谢谢!

1 个答案:

答案 0 :(得分:2)

试试这个!

WHERE a.column1 LIKE '%' || b.column1 || '%'

%需要单引号,因为模式是一个字符串 ||是连接的运算符。

如果我做了一个错误的假设,请发表评论,我将重新调整我的答案。