2012-10-15 2 views
2

아래 코드가 있습니다. 아래와 같이 UI 목록에서 문자열 목록을 가져오고 있습니다. 목록에는 아래와 같이 3 개의 문자열이 있습니다.oracle에서 검색하는 것과 비슷합니까?

happy% 
%hai 
%hello% 

이제 모든 3 개의 문자열을 반복하고 일치하는 문자열을 가져 와서 다음과 같이 최종 목록에 추가합니다.

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

내 질문에 내가 단일 쿼리에 포함 할 수있는 방법, 대신 별도의 쿼리를 발사의입니까?

감사합니다.

답변

3

당신은 당신은 요구 사항에 따라 몇 가지 질의를 할 수있는 세 개의 문자열이

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

+0

여기서 regexp_like 함수를 사용할 수 없습니까? 감사! – user1016403

+0

나는 너를 못 느끼고있다. – Abubakkar

+0

orge에는 regexp_like()라는 이름의 함수가 있습니다. 내가 여기서 사용할 수 있을까? – user1016403

1

처럼 점점로 OR 연산자를 사용할 수 있습니다. 세 필요가 결과에있을 경우에 당신은과 같이 AND를 사용 : 또한 OR를 사용하거나 혼합 할 수 두 일치

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

. OR은 이전 결과의 AND과 동일한 방식으로 작동하며, 상위 쿼리는 복잡한 쿼리를 작성할 때 도움이됩니다.

또한, 당신이 그렇게처럼 보일 수있는 특정 결과를 제외 할 NOT 키워드를 사용할 수 있습니다

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

참고 : 하나 개의 문자가 일치하는 %이 많은 반면_가있다.

관련 문제