Postgresql 将LIKE与列表一起使用

Postgresql 将LIKE与列表一起使用,postgresql,Postgresql,我需要选择列值类似于列表中任何值的记录: select * from bulkjob where bulkjob_owner LIKE ( SELECT '%' || sys_user_login FROM sys_user WHERE sys_user_type_id IN (3, 4, 5) ) 这不起作用: 错误:用作表达式的子查询返回多行 有没有办法做到这一点,也许可以使用Postgresql函数?这是一个交叉乘积,因此如果后缀(即sys\u user\u登录

我需要选择列值类似于列表中任何值的记录:

select * 
from bulkjob
where bulkjob_owner LIKE (
    SELECT '%' || sys_user_login
    FROM sys_user
    WHERE sys_user_type_id IN (3, 4, 5)
)
这不起作用:

错误:用作表达式的子查询返回多行


有没有办法做到这一点,也许可以使用Postgresql函数?

这是一个交叉乘积,因此如果后缀(即sys\u user\u登录名重叠:说“joe”和“mary joe”)你可能会得到重复。因此,您可能需要执行一个独特的查询或子查询

SELECT b.*
  FROM bulkjob b
      ,sys_user s
  WHERE b.bulkjob_owner LIKE '%' || s.sys_user_login
    AND s.sys_user_type_id IN (3,4,5)

+你解决了。但是显式连接是规范的方式<代码>。。。在b.bulkjob|u owner~(“%”s.sys|u user_login)上加入sys_user s,其中s.sys_user_在(3,4,5)中键入id@ErwinBrandstetter我想我应该开始养成这样做的习惯。从来没有真正使用过显式连接语句,直到我在这里遇到线程。关于这个主题的一些线索看起来像是宗教战争,但我确实认为赞成使用JOIN的论点是有说服力的,特别是对于更大的陈述。我会努力的。谢谢