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的论点是有说服力的,特别是对于更大的陈述。我会努力的。谢谢