2017-07-17 73 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[]); 
相關問題