2017-07-17 101 views
0

我有一个数据库,其中包含文本字段(字符串,几句话长)和较短的字符串(例如:大学专业)列。有什么方法可以在SQL中使用'LIKE'函数来搜索另一列中是否出现College Major列的其中一个值?有没有办法对另一列中的一列进行单词搜索?

我不想写出来的每一个科班出身的一个字符串,因为有超过100

+0

请详细解释您的代码,以便理解和解决您的问题。 –

+0

所以你想检查所有可能的短字符串agaisnt长字符串的组合,是吗? –

+0

您能否提供一些测试数据以便更好地理解。从 –

回答

1

当然可以。像

where bigdatacolumn like '%' + computer_major + '%' 

既然你说了些什么,其他列包含几行(Text列),你可能要考虑使用Full Text Search而不是使用LIKE操作

+0

这个问题上看不清楚,你也可以在字段上加入。另外值得一提的是,字符串比较将会很慢,特别是使用like。 –

+0

@MarshallTigerus,是的,加入列是一个好主意,但是你必须在'JOIN ON'子句 – Rahul

+0

条款中指定相同的'like'条件是的,我没有试图暗示其他方式,只是增加了另一种方式去实现它。 –

0

使用any操作在一个阵列比较如图所示在下面的查询中。

select * from staff where department ILIKE ANY (ARRAY['AUT%', '%COM%' ,'SP%' ] :: TEXT[]); 
相关问题