为什么正则表达式在使用like的sql server select语句中不起作用

Mia*_*mad 2 regex sql-server azure-sql-database

我是 sql-server 的新手,我尝试选择以 AB 开头后跟 1、2 或 3 位数字的所有记录。我尝试了以下查询,但它不起作用。如果我删除 * 则它可以工作,但会跳过 1 和 2 位数字的记录。我正在使用 SQL-Server 2012。请帮忙!

select userid from registrations 
where userid like 'AB[0-9]*[0-9]*[0-9]*'
Run Code Online (Sandbox Code Playgroud)

Tom*_*lak 6

简单的答案:LIKE模式不是正则表达式。

文档中描述了模式语法。没有量词。


话虽如此,即使在正则表达式中 AB[0-9]*[0-9]*[0-9]*也是没有意义的。
[0-9]*[0-9]*[0-9]*相当于[0-9]*,换句话说,即使LIKE支持正则表达式,这很可能不会达到您的预期。