代码之家  ›  专栏  ›  技术社区  ›  2dor

用于在存储模式的给定列上匹配输入字符串的SQL

  •  0
  • 2dor  · 技术社区  · 8 年前

    在Oracle db中,我有一个表,比如“test\u table”。此表有一列 "test_column" 存储模式如下 ^(0[1-9]|[12][0-9]|3[01]$ , Batman*

    然后,我在Java应用程序中输入值 "25" .

    查找输入字符串是否与 test_table ? 是否有一个简单的查询我可以做或我必须写 procedure 或获取全部 数据 滤器 在代码中?

    2 回复  |  直到 8 年前
        1
  •  1
  •   Gordon Linoff    8 年前

    听起来你想 regexp_like() :

    select t.*
    from test_table t
    where regexp_like(:input, t.test_column);
    
        2
  •  0
  •   Littlefoot    8 年前

    就我所理解的问题而言,即。

    查找我的输入字符串是否与test\u表中的任何行匹配

    那么,这不是一件普通的事吗

    select * 
    from test_table
    where test_column = :input_value
    

    这可能需要修改,这取决于“匹配”对您的意义。例如,这可能是另一个选项,它将检查存储的值 包含 输入值:

    select * 
    from test_table
    where instr(test_column, :input_value) > 0