我现在有以下代码。我从 UI 中获取字符串列表,如下所示。该列表有 3 个字符串,如下所示。
happy%
%hai
%hello%
现在我正在遍历所有 3 个字符串并获取匹配的字符串并将它们添加到最终列表中,如下所示。
for(int i=0;i<list.size;i++){
//query to perform like search...
}
我的问题是,我如何将它们包含在单个查询中,而不是触发单独的查询?
谢谢!
您可以将OR
运算符与您得到的三个字符串一起使用
where name like 'happy%' or name like '%appy' or name like '%ppy%'
您可以根据要求执行多个查询。如果所有三个都需要在结果中,那么您可以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' )
注意: _
是一个字符匹配,%
而是多个。