我有一个数据库,其中包含文本字段(字符串,几句话长)和较短的字符串(例如:大学专业)列。有什么方法可以在SQL中使用'LIKE'函数来搜索另一列中是否出现College Major列的其中一个值?有没有办法对另一列中的一列进行单词搜索?
我不想写出来的每一个科班出身的一个字符串,因为有超过100
我有一个数据库,其中包含文本字段(字符串,几句话长)和较短的字符串(例如:大学专业)列。有什么方法可以在SQL中使用'LIKE'函数来搜索另一列中是否出现College Major列的其中一个值?有没有办法对另一列中的一列进行单词搜索?
我不想写出来的每一个科班出身的一个字符串,因为有超过100
当然可以。像
where bigdatacolumn like '%' + computer_major + '%'
既然你说了些什么,其他列包含几行(Text
列),你可能要考虑使用Full Text Search而不是使用LIKE
操作
这个问题上看不清楚,你也可以在字段上加入。另外值得一提的是,字符串比较将会很慢,特别是使用like。 –
@MarshallTigerus,是的,加入列是一个好主意,但是你必须在'JOIN ON'子句 – Rahul
条款中指定相同的'like'条件是的,我没有试图暗示其他方式,只是增加了另一种方式去实现它。 –
使用any操作在一个阵列比较如图所示在下面的查询中。
select * from staff where department ILIKE ANY (ARRAY['AUT%', '%COM%' ,'SP%' ] :: TEXT[]);
请详细解释您的代码,以便理解和解决您的问题。 –
所以你想检查所有可能的短字符串agaisnt长字符串的组合,是吗? –
您能否提供一些测试数据以便更好地理解。从 –