2010-08-04 92 views

回答

6

除非我失去了一些东西很明显,这应该只是需要简单LIKE查询。

SELECT * 
FROM YourTable 
WHERE URL LIKE 'http://example.com/users/%/' 

正则表达式在SQL查询中是过度和棘手的。

注意:%字符与SQL表达式中的*通配符等效。

如果你想使用LINQ和只工作对SQL Server,你可以使用这个语法:

var results = 
     from yt in YourTable 
     where SqlMethods.Like(yt.URL, "http://example.com/users/%/") 
     select yt; 
+0

是否有一个简单的方法来做到这一点的LINQ?似乎他们只有开始,包含等... – rksprst 2010-08-05 02:36:52

+0

更新我的答案,包括一个LINQ版本。 – JohnFx 2010-08-05 04:29:01

2

这就像做一个像,而是由%字符替换*字符,因为它是那么简单通过T-SQL中使用通配符(我假设你是SQL Server上,因为这是C#和LINQ相关)

SELECT * 
FROM YourTable 
WHERE @TheUrlIWantToMatch LIKE REPLACE(URL, '*', '%') 
+1

像这样不行。 LIKE关键字前的表达式中不能有通配符。 – JohnFx 2010-08-04 22:47:16

+1

哎呀,我把它们放错了顺序。我编辑它感谢指出 – StevenGilligan 2010-08-04 22:53:26