2012-10-15 31 views
2

我現在有下面的代碼。 我正在從UI獲取字符串列表,如下所示。該列表有3個字符串,如下所示。像在oracle中搜索一樣嗎?

happy% 
%hai 
%hello% 

現在我循環所有3個字符串並獲取匹配字符串並將它們添加到最終列表如下。

for(int i=0;i<list.size;i++){ 
//query to perform like search... 
} 

我的問題是,而不是發射一個單獨的查詢,我怎麼能包括他們在一個單一的查詢?

謝謝!

回答

3

您可以使用OR運營商與三根琴絃,你越來越像

where name like 'happy%' or name like '%appy' or name like '%ppy%'

+0

這裏不能使用regexp_like函數嗎?謝謝! – user1016403

+0

我沒有收到你。 – Abubakkar

+0

oracle中有一個名字爲regexp_like()的函數。我可以在這裏使用它嗎? – user1016403

1

你可以做幾次查詢取決於需求。如果所有三個需要在結果然後使用AND像這樣:

SELECT st 
FROM SampleTable st 
WHERE (st.col1 LIKE 'happy%') AND (st.col2 LIKE '%hai') 
AND (st.col3 LIKE '%hello%') 

您還可以使用OR,或者你可以混合和匹配兩個。 OR的工作方式與之前結果中的AND相同,在編寫複雜查詢時,父級幫助有所幫助。

此外,還可以使用關鍵字NOT排除了一定的成績,這可以看起來像這樣:

SELECT st 
FROM SampleTable st 
WHERE (st.col1 LIKE 'happy%') AND (st.col2 NOT LIKE '_hai') 

注:_是一個字符匹配,而%是很多。

相關問題