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



i有一个表,其中包含图像的列,该列存储图像的链接。

示例看起来像这样:

\Images/image1.jpg

现在假设我的数据库具有1000张图像的1000多个记录,但是由于某些要求更改,我必须更新链接。

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

现在是这样存储的:

\Images/image1.jpg

我想将其转换为

Images/image1.jpg

一种方法是转到1000个记录并一一删除它,这太耗时了,作为替代方案,可以通过SSMS运行的SQL查询?

您可以使用REPLACE来做到这一点:

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

仅更新以" \"开头的值,您可以做

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

这应该在MS 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) = '\'

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

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

如果要使用更新值更新表,而不是使用更新查询,则应看起来像这样;

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

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

plus,SQL Server具有非常简单的功能:

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

相关内容

  • 没有找到相关文章

最新更新