2016-09-29 171 views
1

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

说有一个叫website表,有一个叫url

列什么,我试图做的是我要找到具有字act网址。

select * 
from website 
where url like '%act%' 

但我意识到我不想权利之前或单词act后的任何字母字符。

我知道正则表达式可以给我我需要的,但我无法弄清楚如何在sql语法中使用它。

+0

是否运行了DBMS:

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

如果你只是刚刚前后关心的人物? SQL Server,MySQL,PostgreSQL等? – Nicarus

+0

我正在运行(Microsoft?)SQL服务器 – Mufasa

+0

哪个版本? – Nicarus

回答

1

如果你想字符串中的字母字符,则:

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

我做了“rawurl like'%[a-zA-Z] act [a-zA-Z]%'”, ,但我仍然会收到具有“练习“,其中包括”行为“一词,但在前后都有字母。 – Mufasa

+0

将^放在两个括号的前面。 [^ a-zA-Z] @HiJaeKim – scsimon

+0

@HiJaeKim。 。 。这是一个错字。字符集应该有一个否定。 –