更新LIKE有多个条件的表

时间:2014-04-11 09:26:24

标签: sql string postgresql-9.3

我在PostgreSQL(版本9.3)中有两个表。第一个包含id,title,第二个包含schdname。我试图创建一个select语句来检索id和title,其中title包含来自另一个表的schdname。 id,title表可以容纳几千行。如果我使用WHERE LIKE作为单独的schdname示例,但我有40个以上的名称,所以这是不切实际的。

我的原始查询是这样的,我知道它不起作用,但会显示我想要实现的目标。

选择     ID,     标题,     DNAME 从     mytable的

WHERE     标题喜欢(         选择             schdname         从             时间表         )

这会产生由用作表达式的子查询返回的多行错误。所以我的问题是,这可以通过另一种方式实现吗?

2 个答案:

答案 0 :(得分:1)

这是一种方法:

SELECT id, title, dname FROM mutable
JOIN schedule ON mutable.title like '%' || schedule.schdname || '%'

或稍微可读的方式:

SELECT id, title, dname FROM mutable
JOIN schedule ON POSITION(schedule.schdname in mutable.title)<>0

答案 1 :(得分:0)

你实际上是否正在使用通配符?你不能这么说。如果没有,你可以像IN一样替换。如果您确实想要进行通配符连接,我建议您使用列的子字符串并对其进行比较,例如

名称

詹姆斯 插口 卫

选择substr(names,1,2)作为names_abbr 来自names_table,其中names_abbr =(选择...)