我有一个表,其中包含一列用于存储图像链接的图像。
示例如下:
<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查询吗?
答案 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 '\\%';