如何编写SQL查询以删除路径的第一个元素(第一个字符)

时间:2019-05-20 08:41:35

标签: sql sql-server

我有一个表,其中包含一列用于存储图像链接的图像。

示例如下:

<div data-testid="base">
  <StyledIcon className="icon-share" />
  <StyledSpan>{base}</StyledSpan>
</div>

现在假设我的数据库中有1000条图像的1000条记录,可以正常工作,但是现在由于某些要求更改,我必须更新链接。

我想通过SQL查询从所有1000条记录中删除第一个斜杠。

现在,它像这样存储:

\\Images/image1.jpg

我想将其转换为

\\Images/image1.jpg

一种方法是将1000条记录逐个删除,这非常耗时,或者可以通过SSMS运行SQL查询吗?

5 个答案:

答案 0 :(得分:2)

您可以使用REPLACE进行此操作:

update yourTable
set yourColumn = replace(yourColumn,'\\','\')

答案 1 :(得分:2)

要仅更新以“ \\”开头的值,您可以

UPDATE someTable SET col = REPLACE(col, '\\%', '\')

答案 2 :(得分:1)

这应该在SQL女士上完成。

SELECT SUBSTRING(path, 2, LEN(path) - 1) FROM yourtable

编辑:

UPDATE yourtable
SET path = SUBSTRING(path, 2, LEN(path) - 1)
WHERE SUBSTRING(path, 1, 2) = '\\'

答案 3 :(得分:0)

如果您只是想获取这样的数据集,请尝试在选择查询中使用RIGHT函数;您的查询应该看起来像这样;

SELECT RIGHT(path, LEN(path)-1) FROM yourtable

如果要使用更新后的值更新表而不是使用UPDATE查询,则应如下所示;

UPDATE yourtable SET path = RIGHT(path, LEN(path)-1) FROM yourtable

答案 4 :(得分:0)

我不会为此目的使用替换!您要删除第一个斜杠,replace()替换字符串中所有匹配的值。

此外,SQL Server具有一个非常简单的功能:

update t
    set col = stuff(col, 1, 1, '')
    where col like '\\%';