SQL用于选择与带通配符的URL匹配的行

rks*_*rst 2 c# regex sql linq asp.net

我在数据库中有一个表,其中一列包含http://example.com/users/*/profile 等URL

我得到一个URL(如http://example.com/users/234/profile),并希望选择db中与url匹配的所有行(在本例中为*是通配符).

我正在考虑使用Regex来执行此操作,将*替换为任何字符的正则表达式.但我不确定选择SQL或LINQ代码应该是什么.

你们有什么想法吗?

Joh*_*nFx 6

除非我遗漏了一些明显的东西,否则这应该只需要一个简单的LIKE查询.

SELECT *
FROM YourTable
WHERE URL LIKE 'http://example.com/users/%/'
Run Code Online (Sandbox Code Playgroud)

在SQL查询中,正则表达式过于棘手且棘手.

注意:%字符等同于SQL表达式中的*通配符.

如果要使用LINQ并且仅针对SQL Server,则可以使用以下语法:

var results =
        from yt in YourTable
        where SqlMethods.Like(yt.URL, "http://example.com/users/%/")
        select yt;
Run Code Online (Sandbox Code Playgroud)