我有两个表,我想用LIKE语句比较两个列表。但我不想输入文本字符串进行比较。所以不要使用:
WHERE a.column1 LIKE '%pattern1%' OR a.column1 LIKE '%b.pattern2%'
我想告诉查询
WHERE a.column1 LIKE b.column1
我知道这远远不是最优的,使用多个LIKE但是出于这个查询的目的,这正是我需要做的。
请您确认这实际上是否可行,如果是,我应该使用什么语法?我在postgresql但也可以使用aws或presto替代品,虽然我想他们会更有限。
当尝试上面的例子时,我得到的结果为null。当试图将完整列表提取为文本并使用posix或任何数组函数时,我收到一条错误消息: '无效正则表达式:量词操作数无效'
非常感谢任何建议。谢谢!
答案 0 :(得分:2)
试试这个!
WHERE a.column1 LIKE '%' || b.column1 || '%'
%需要单引号,因为模式是一个字符串
||是连接的运算符。
如果我做了一个错误的假设,请发表评论,我将重新调整我的答案。