我目前正在学习 SQL 并使用 SSMS 2017。我不明白为什么在使用 REGEXP 语法时出现错误,它似乎适用于其他任何人:
SELECT *
FROM List
WHERE Name REGEXP '^.[a-e].*'
ORDER BY Name;
Error: An expression of non-boolean type specified in a context where a condition is expected, near 'REGEXP'.
最佳答案
您的错误是 SQL Server 错误,而不是 MySQL 错误。 SMSS 是 Microsoft 的产品,通常与 SQL Server 一起使用。因此,我断定您正在学习 SQL Server。
SQL Server 不支持 REGEXP
运算符。但它确实扩展了 LIKE
模式匹配。你可以做你想做的:
SELECT l.*
FROM List l
WHERE l.Name LIKE '%[a-e]%'
ORDER BY Name;
还值得注意的是,您的 REGEXP
模式比必要的更复杂。正则表达式匹配字符串中的任何位置,因此这会找到包含字母“a”到“e”的任何名称:
WHERE Name REGEXP '[a-e]'
关于sql - REGEXP 错误 - 在预期条件的上下文中指定的非 bool 类型的表达式,接近 'REGEXP',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51009978/