Sql REGEXP Error-在预期条件的上下文中指定的非布尔型表达式,接近';REGEXP';

Sql REGEXP Error-在预期条件的上下文中指定的非布尔型表达式,接近';REGEXP';,sql,sql-server,Sql,Sql Server,我目前正在学习SQL并使用SSMS 2017。我不明白为什么在使用REGEXP语法时会出现错误,因为它似乎适用于其他任何人: SELECT * FROM List WHERE Name REGEXP '^.[a-e].*' ORDER BY Name; 错误:在上下文中指定的非布尔类型的表达式,其中 “REGEXP”附近应出现条件 您的错误是SQL Server错误,而不是MySQL错误。SMSS是一种Microsoft产品,通常与SQL Server一起使用。因此,我断定您正在学习SQL S

我目前正在学习SQL并使用SSMS 2017。我不明白为什么在使用REGEXP语法时会出现错误,因为它似乎适用于其他任何人:

SELECT *
FROM List
WHERE Name REGEXP '^.[a-e].*'
ORDER BY Name;
错误:在上下文中指定的非布尔类型的表达式,其中 “REGEXP”附近应出现条件


您的错误是SQL Server错误,而不是MySQL错误。SMSS是一种Microsoft产品,通常与SQL Server一起使用。因此,我断定您正在学习SQL Server

SQL Server不支持
REGEXP
运算符。但它确实扩展了
模式匹配。你可以做你想做的事情:

SELECT l.*
FROM List l
WHERE l.Name LIKE '%[a-e]%'
ORDER BY Name;
还值得注意的是,您的
REGEXP
模式比必要的更复杂。正则表达式匹配字符串中的任何位置,因此它会查找字母“a”到“e”的任何名称:


您可能是在学习使用SMS的SQL Server,而SQL Server没有内置的正则表达式支持。SSMS只能与SQL Server一起使用,而不能与MySQL一起使用。谢谢您提供了如此详细的答案。
    WHERE Name REGEXP '[a-e]'