【问题标题】:Doing like search in oracle?喜欢在 oracle 中搜索?
【发布时间】:2012-10-15 13:17:48
【问题描述】:

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

happy%
%hai
%hello%

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

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

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

谢谢!

【问题讨论】:

    标签: java sql oracle hibernate


    【解决方案1】:

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

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

    【讨论】:

    • 这里不能使用regexp_like函数吗?谢谢!
    • oracle 中有一个函数名为 regexp_like()。我可以在这里使用它吗?
    • or name like '%ppy%' 此条件包括其余 2 个条件
    【解决方案2】:

    您可以根据要求进行多个查询。如果所有三个都需要在结果中,那么您可以像这样使用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' )
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-19
      • 2017-10-25
      • 2014-07-11
      • 2011-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多