Where子句中的数字通配符

jmq*_*jmq 1 regex sql database oracle

我正在尝试向查询添加数字通配符以查找特定位置的数字.查询看起来像这样:

SELECT SUBMITTER
  FROM BASE_ELEMENT
 WHERE SUBMITTER LIKE 'm_%';
Run Code Online (Sandbox Code Playgroud)

这个查询的问题在于它拾取以"m"开头并且在第二个位置有一个字符的所有内容.我需要一些像Unix通配符一样工作的东西:

'm[0-9]*'
Run Code Online (Sandbox Code Playgroud)

我希望它包括m0,m1,m2等,但不包括ma,mb,mc等.

我如何在Oracle 10g中实现这一目标?

Ben*_*Ben 9

在10G你有奇迹正则表达式.那么,您的查询可能是:

select submitter
  from base_element
 where regexp_like(submitter, '^m[[:digit:]]')
Run Code Online (Sandbox Code Playgroud)

^将表达式锚定到行的开头并[[:digit:]]匹配任何数字.