在Sql中查找两个指定字符之间的字符串

本文关键字:字符 之间 字符串 两个 Sql 查找 | 更新日期: 2023-09-27 18:10:18

我有一个LinkedIn链接在我的数据库列这里我必须检查我的LinkedIn ID链接在链接插入两个或更多次。例:https://www.linkedin.com/profile/view?id=246925795& authType = name& authToken = sygl& trk = prof-sb-browse_map-name

我必须检查数据库中的id如果id重复两次或两次以上,则必须删除它,只留下一次。id = 246925795

请有人帮帮我

在Sql中查找两个指定字符之间的字符串

WITH Ids AS (
    SELECT Id,
           SUBSTRING(LinkedInLink, IdStart, IdEnd - IdStart) AS LinkedInId
    FROM table
         CROSS APPLY (
             SELECT CHARINDEX('id=', LinkedInLink) AS IdStart
         ) AS CA1
         CROSS APPLY (
             SELECT CHARINDEX('&', LinkedInLink, IdStart) AS IdEnd
         ) AS CA2
)
,Duplicates AS (
    SELECT LinkedInId
          ,MAX(id) AS LastDuplicateId
    FROM Ids
    GROUP BY LinkedInId
    HAVING COUNT(*) > 1
)
DELETE FROM Table
WHERE Id IN (SELECT LastDuplicateId FROM Duplicates)

最好使用正则表达式进行这样的搜索操作。您可以创建一个实用程序类,它将在c#或VB中执行搜索+替换。Net,然后在SQl Server中导入该类(DLL)。在你的SQL查询中,你可以使用它作为一个函数。

参考:Link