例如:表musiclist中有pic一列
但pic里面的数据有的是1/13243sds.jpg,有的是2/12324sa.jpg
我想把这些不同的数据都修改成http://img.XXXX.com/13243sds.jpg,http://img.XXXX.com/12324sa.jpg这样。。
应该怎么搞????????
高手指点下。。
谢谢了。。
15 个解决方案
#1
update musiclist set pic='http://img.XXXX.com/13243sds.jpg,http://img.XXXX.com/12324sa.jpg'
#2
update musiclist
set pic = stuff(pic,1,charindex('/',pic),'http://img.XXXX.com')
#3
create table #tab(im varchar(50))
insert into #tab values('1/13243sds.jpg')
insert into #tab values('2/12324sa.jpg')
update #tab set im='http://img.XXXX.com/'+substring(im,charindex('/',im)+1,len(im)) from #tab
select * from #tab
im
--------------------------------------------------
http://img.XXXX.com/13243sds.jpg
http://img.XXXX.com/12324sa.jpg
(2 行受影响)
#4
declare @tb table (id int,name varchar(100))
insert into @tb select 1,'1/13243sds.jpg'
insert into @tb select 2,'2/12324sa.jpg'
update @tb set name='http://img.XXXX.com'+substring(name,1,len(name))
select * from @tb
id name
1 http://img.XXXX.com1/13243sds.jpg
2 http://img.XXXX.com2/12324sa.jpg
#5
declare @tb table (id int,name varchar(100))
insert into @tb select 1,'1/13243sds.jpg'
insert into @tb select 2,'2/12324sa.jpg'
update @tb set name='http://img.XXXX.com'+substring(name,2,len(name))
select * from @tb
id name
1 http://img.XXXX.com/13243sds.jpg
2 http://img.XXXX.com/12324sa.jpg
#6
declare @t table(pic varchar(50))
insert into @t values('1/13243sds.jpg')
insert into @t values('asdf2/12324sa.jpg')
insert into @t values('2/12324sa.jpg')
insert into @t values('afda 2/12324sa.jpg')
update @t
set pic = stuff(pic,1,charindex('/',pic)-1,'http://img.XXXX.com')
select * from @t
/*
pic
--------------------------------------------------
http://img.XXXX.com/13243sds.jpg
http://img.XXXX.com/12324sa.jpg
http://img.XXXX.com/12324sa.jpg
http://img.XXXX.com/12324sa.jpg
(所影响的行数为 4 行)
*/
#7
补充下
表是:special
列是:Pic
表是:special
列是:Pic
#8
...........
#9
这样批量修改数据库一列的数据???
例如:表special中有pic一列
但pic里面的数据有的是1/图片名,有的是2/图片名
pic列有几十W条数据。。
我想把这些不同的数据都修改成http://img.XXXX.com/图片名,http://img.XXXX.com/图片名这样。。
应该怎么搞????????
高手指点下。。
谢谢了。。
例如:表special中有pic一列
但pic里面的数据有的是1/图片名,有的是2/图片名
pic列有几十W条数据。。
我想把这些不同的数据都修改成http://img.XXXX.com/图片名,http://img.XXXX.com/图片名这样。。
应该怎么搞????????
高手指点下。。
谢谢了。。
#10
create table special(Pic varchar(50))
insert into special values('1/13243sds.jpg')
insert into special values('2/12324sa.jpg')
update special set Pic='http://Picg.XXXX.com/'+substring(Pic,charindex('/',Pic)+1,len(Pic)) from special
select * from special
Pic
--------------------------------------------------
http://Picg.XXXX.com/13243sds.jpg
http://Picg.XXXX.com/12324sa.jpg
#11
10楼的兄弟。。
我试了下你的语句。。
没有删除掉1/、2/的。。。
还保留下来了。。
我试了下你的语句。。
没有删除掉1/、2/的。。。
还保留下来了。。
#12
都是 一位字符/ 这样的,就用substring 或right就行
#13
update special
set Pic='http://img.XXXX.com/'+ reverse(substring(reverse(Pic),1,charindex('/',reverse(Pic))-1))
楼主
绝对正确
接分啦
set Pic='http://img.XXXX.com/'+ reverse(substring(reverse(Pic),1,charindex('/',reverse(Pic))-1))
楼主
绝对正确
接分啦
#14
create table special(Pic varchar(50))
insert into special select '/1/13243sds.jpg'
insert into special select '/2/12324sa.jpg'
update special set pic = 'http://img.XXXX.com'+right(pic,CHARINDEX('/',REVERSE(pic)))
select * from special
drop table special
/*
Pic
--------------------------------------------------
http://img.XXXX.com/13243sds.jpg
http://img.XXXX.com/12324sa.jpg
(所影响的行数为 2 行)
*/
#15
update special set pic = 'http://img.XXXX.com'+right(pic,CHARINDEX('/',REVERSE(pic))-1)--楼上少了一个(-1)
#1
update musiclist set pic='http://img.XXXX.com/13243sds.jpg,http://img.XXXX.com/12324sa.jpg'
#2
update musiclist
set pic = stuff(pic,1,charindex('/',pic),'http://img.XXXX.com')
#3
create table #tab(im varchar(50))
insert into #tab values('1/13243sds.jpg')
insert into #tab values('2/12324sa.jpg')
update #tab set im='http://img.XXXX.com/'+substring(im,charindex('/',im)+1,len(im)) from #tab
select * from #tab
im
--------------------------------------------------
http://img.XXXX.com/13243sds.jpg
http://img.XXXX.com/12324sa.jpg
(2 行受影响)
#4
declare @tb table (id int,name varchar(100))
insert into @tb select 1,'1/13243sds.jpg'
insert into @tb select 2,'2/12324sa.jpg'
update @tb set name='http://img.XXXX.com'+substring(name,1,len(name))
select * from @tb
id name
1 http://img.XXXX.com1/13243sds.jpg
2 http://img.XXXX.com2/12324sa.jpg
#5
declare @tb table (id int,name varchar(100))
insert into @tb select 1,'1/13243sds.jpg'
insert into @tb select 2,'2/12324sa.jpg'
update @tb set name='http://img.XXXX.com'+substring(name,2,len(name))
select * from @tb
id name
1 http://img.XXXX.com/13243sds.jpg
2 http://img.XXXX.com/12324sa.jpg
#6
declare @t table(pic varchar(50))
insert into @t values('1/13243sds.jpg')
insert into @t values('asdf2/12324sa.jpg')
insert into @t values('2/12324sa.jpg')
insert into @t values('afda 2/12324sa.jpg')
update @t
set pic = stuff(pic,1,charindex('/',pic)-1,'http://img.XXXX.com')
select * from @t
/*
pic
--------------------------------------------------
http://img.XXXX.com/13243sds.jpg
http://img.XXXX.com/12324sa.jpg
http://img.XXXX.com/12324sa.jpg
http://img.XXXX.com/12324sa.jpg
(所影响的行数为 4 行)
*/
#7
补充下
表是:special
列是:Pic
表是:special
列是:Pic
#8
...........
#9
这样批量修改数据库一列的数据???
例如:表special中有pic一列
但pic里面的数据有的是1/图片名,有的是2/图片名
pic列有几十W条数据。。
我想把这些不同的数据都修改成http://img.XXXX.com/图片名,http://img.XXXX.com/图片名这样。。
应该怎么搞????????
高手指点下。。
谢谢了。。
例如:表special中有pic一列
但pic里面的数据有的是1/图片名,有的是2/图片名
pic列有几十W条数据。。
我想把这些不同的数据都修改成http://img.XXXX.com/图片名,http://img.XXXX.com/图片名这样。。
应该怎么搞????????
高手指点下。。
谢谢了。。
#10
create table special(Pic varchar(50))
insert into special values('1/13243sds.jpg')
insert into special values('2/12324sa.jpg')
update special set Pic='http://Picg.XXXX.com/'+substring(Pic,charindex('/',Pic)+1,len(Pic)) from special
select * from special
Pic
--------------------------------------------------
http://Picg.XXXX.com/13243sds.jpg
http://Picg.XXXX.com/12324sa.jpg
#11
10楼的兄弟。。
我试了下你的语句。。
没有删除掉1/、2/的。。。
还保留下来了。。
我试了下你的语句。。
没有删除掉1/、2/的。。。
还保留下来了。。
#12
都是 一位字符/ 这样的,就用substring 或right就行
#13
update special
set Pic='http://img.XXXX.com/'+ reverse(substring(reverse(Pic),1,charindex('/',reverse(Pic))-1))
楼主
绝对正确
接分啦
set Pic='http://img.XXXX.com/'+ reverse(substring(reverse(Pic),1,charindex('/',reverse(Pic))-1))
楼主
绝对正确
接分啦
#14
create table special(Pic varchar(50))
insert into special select '/1/13243sds.jpg'
insert into special select '/2/12324sa.jpg'
update special set pic = 'http://img.XXXX.com'+right(pic,CHARINDEX('/',REVERSE(pic)))
select * from special
drop table special
/*
Pic
--------------------------------------------------
http://img.XXXX.com/13243sds.jpg
http://img.XXXX.com/12324sa.jpg
(所影响的行数为 2 行)
*/
#15
update special set pic = 'http://img.XXXX.com'+right(pic,CHARINDEX('/',REVERSE(pic))-1)--楼上少了一个(-1)