像在oracle中搜索一样?

时间:2012-10-15 13:17:48

标签: java sql oracle hibernate

我现在有以下代码。 我从UI获取字符串列表如下所示。该列表有3个字符串,如下所示。

happy%
%hai
%hello%

现在我循环遍历所有3个字符串并获取匹配的字符串并将它们添加到最终列表中,如下所示。

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

我的问题是,我怎样才能将它们包含在单个查询中,而不是单独发出查询?

谢谢!

2 个答案:

答案 0 :(得分:3)

你可以使用OR运算符来获得你想要的那三个字符串

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

答案 1 :(得分: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' )

注意: _用于一个字符匹配,而%用于许多字符匹配。

相关问题