2017-05-10 16 views
0

我有两张表,我想用LIKE语句比较两个列表。但我不想输入用于比较的文本字符串。因此,而不是使用:LIKE用于两个单独的列输出

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

我想告诉查询

WHERE a.column1 LIKE b.column1 

我知道这是远远没有达到最佳,使用多喜欢,但此查询的目的,这正是我需要做。

您能否确认这实际上是否可行,如果有的话,我应该使用哪种语法?我在postgresql上,但也可以使用aws或presto替代品,尽管我想它们会更有限。

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

任何意见将不胜感激。谢谢!

回答

2

试试这个!

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

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

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

+0

非常感谢Rahul的回复。不幸的是,这也返回空结果。我也尝试使用WHERE'%'|| a.column1 || '%'ILIKE'%'|| b.column1 || '%',但也是空的结果。我假设必须有办法做到这一点! – afropunk

+0

您是否正在使用wl和ur的交叉产品? –

+1

嗨拉胡尔我可能已经谈得太早了,我倒过来了,命令在哪里b.column1 LIKE'%'|| a.column1 || '%',我得到了一些结果。现在检查一下它们是否好。很快就会回复! – afropunk

相关问题