2

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

happy%
%hai
%hello%

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

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

我的问题是,我如何将它们包含在单个查询中,而不是触发单独的查询?

谢谢!

4

2 回答 2

3

您可以将OR运算符与您得到的三个字符串一起使用

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

于 2012-10-15T13:18:41.073 回答
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' )

注意: _是一个字符匹配,%而是多个。

于 2012-10-15T13:46:33.627 回答