我现在有以下代码。 我从UI获取字符串列表如下所示。该列表有3个字符串,如下所示。
happy%
%hai
%hello%
现在我循环遍历所有3个字符串并获取匹配的字符串并将它们添加到最终列表中,如下所示。
for(int i=0;i<list.size;i++){
//query to perform like search...
}
我的问题是,我怎样才能将它们包含在单个查询中,而不是单独发出查询?
谢谢!
答案 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' )
注意: _
用于一个字符匹配,而%
用于许多字符匹配。