Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
排除非字母的SQL正则表达式_Sql_Sql Server_Regex - Fatal编程技术网

排除非字母的SQL正则表达式

排除非字母的SQL正则表达式,sql,sql-server,regex,Sql,Sql Server,Regex,我正在编写一个sql查询来查看URL列表。我在正则表达式方面的知识非常有限,而且我从未在SQL中使用过它 假设有一个名为website的表和一个名为url 我想做的是找到包含单词act的url select * from website where url like '%act%' 但是我意识到我不想在单词act之前或之后有任何字母字符 select * from website where url like '%act%' 我知道正则表达式可以满足我的需要,但我不知道如何在sql语法中使用

我正在编写一个
sql
查询来查看URL列表。我在正则表达式方面的知识非常有限,而且我从未在SQL中使用过它

假设有一个名为
website
的表和一个名为
url

我想做的是找到包含单词
act
的url

select *
from website
where url like '%act%'
但是我意识到我不想在单词
act
之前或之后有任何字母字符

select *
from website
where url like '%act%'
我知道正则表达式可以满足我的需要,但我不知道如何在sql语法中使用它。

如果您只希望字符串中包含字母字符,那么:

where url like '%act%' and url not like '%[^a-zA-Z]%'
如果您只关心前后的字符:

where url like '%[^a-zA-Z]act[^a-zA-Z]%'

您正在运行哪个数据库管理系统?SQL Server、MySQL、PostgreSQL等?我在(Microsoft?)SQL Server上运行哪个版本?类似于
的地方“+url+”,如“[^a-z]act[^a-z]%”
?版本是“SQL Server 2014'I do”,其中rawurl类似于“[a-zA-z]act[a-zA-z]”,但我仍然得到带有“practice”一词的url,其中包括“act”一词但它的前后都有字母字符。在a前面的两个括号中都放“^”。[^a-zA-Z]@HiJaeKim@HiJaeKim . . . 那是个打字错误。字符集上应该有一个否定。