admin

SQL选择与通配符URL匹配的行

sql

我在数据库中有一张表,其中一栏包含网址,例如http://example.com/users/ * / profile

给了我一个URL(例如http://example.com/users/234/profile),并希望选择数据库中与该URL匹配的所有行(在本例中,*是通配符)。

我当时正在考虑使用正则表达式来实现此目的,方法是将*替换为任何字符的正则表达式。但是不能确定选择哪种SQL或LINQ代码。

你们有什么主意吗?


阅读 290

收藏
2021-06-07

共1个答案

admin

除非我缺少明显的内容,否则这只需要一个简单的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;
2021-06-07