中级难度问题

chi1983 2011-01-23 10:39:45
各位好,在下有个问题想向大家请教。
在products里面有两个字段值我想修改,一个是pro_img,内容格式是这样的:4108mbXO7-L.jpg,另一个是pro_mimg,内容格式是4108mbXO7-L.jpg|41oSD8U1dVL.jpg|31KNYvN7d5L.jpg|41vHjpK5pZL.jpg|none|none|none|none,我想把pro_img的内容换成pro_mimg的第二项,即41oSD8U1dVL.jpg,并把pro_mimg的第一项内容删掉,即41oSD8U1dVL.jpg|31KNYvN7d5L.jpg|41vHjpK5pZL.jpg|none|none|none|none,mysql命令该如何去写?
...全文
130 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
chi1983 2011-01-24
  • 打赏
  • 举报
回复
不知道为什么,可能我打错码?运行后现在我pro_img为空。。。现在怎样补救?
ACMAIN_CHM 2011-01-24
  • 打赏
  • 举报
回复
update products                                                                      
set pro_img=SUBSTRING_INDEX(SUBSTRING_INDEX(pro_mimg,'|',2),'|',-1),
pro_mimg=right(pro_mimg,length(pro_mimg)-length(SUBSTRING_INDEX(pro_mimg,'|',1))-1)
  • 打赏
  • 举报
回复
SQL Server里面的很简单,但是MYSQL不大会啊。
chi1983 2011-01-23
  • 打赏
  • 举报
回复
晴天真是高手,而且具有精益求精的精神,实在为英雄之才也,佩服佩服!
-晴天 2011-01-23
  • 打赏
  • 举报
回复
大约是这样:
update products set pro_img=
substring(pro_mimg,instr(pro_mimg,'|')+1,locate(pro_mimg,'|',instr(pro_mimg,'|'))-instr(pro_mimg,'|')-1),
pro_mimg=right(pro_mimg,length(pro_mimg)-instr(pro_mimg,'|'))
where pro_img='4108mbXO7-L.jpg'
bean_sql 2011-01-23
  • 打赏
  • 举报
回复
-晴天 2011-01-23
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 maco_wang 的回复:]
引用 6 楼 qianjin036a 的回复:
MSSQL与MYSQL语句函数的不同在于:
charindex --> instr
substring --> substring
right --> right
len --> length

晴天连MySQL也很在行,厉害!
[/Quote]

哪儿啊!刚查的 MySQL 5.1 Reference Manual
-晴天 2011-01-23
  • 打赏
  • 举报
回复
create table products(pro_img nvarchar(100),pro_mimg nvarchar(200))
insert into products select '4108mbXO7-L.jpg','4108mbXO7-L.jpg|41oSD8U1dVL.jpg|31KNYvN7d5L.jpg|41vHjpK5pZL.jpg|none|none|none|none'
go
update products set pro_img=
substring(pro_mimg,charindex('|',pro_mimg),charindex('|',pro_mimg,charindex('|',pro_mimg)-charindex('|',pro_mimg)-1)),
pro_mimg=right(pro_mimg,len(pro_mimg)-charindex('|',pro_mimg))
where pro_img='4108mbXO7-L.jpg'
go
select * from products
go
drop table products
/*
pro_img pro_mimg
---------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|41oSD8U1dVL.jpg 41oSD8U1dVL.jpg|31KNYvN7d5L.jpg|41vHjpK5pZL.jpg|none|none|none|none

(1 行受影响)

*/
chi1983 2011-01-23
  • 打赏
  • 举报
回复
感谢兩位前辈,我现在懂怎样去弄了,万分感谢!
叶子 2011-01-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 qianjin036a 的回复:]
MSSQL与MYSQL语句函数的不同在于:
charindex --> instr
substring --> substring
right --> right
len --> length
[/Quote]
晴天连MySQL也很在行,厉害!
-晴天 2011-01-23
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 chi1983 的回复:]
pro_mage 是pro_mimg吗?
这好像是只把pro_mimg改了,但pro_img没改成pro_mimg的第二项啊


引用 4 楼 qianjin036a 的回复:
在MSSQL里,这个需求的语句可以这样写:

SQL code
update products set pro_mage=
substring(pro_mimg,charindex('|',pro_mi……
[/Quote]
笔误.前面应该是 set pro_img=
chi1983 2011-01-23
  • 打赏
  • 举报
回复
这个也好像是只把pro_mimg改了,pro_img没改成pro_mimg的第二项啊。。。


[Quote=引用 5 楼 ssp2009 的回复:]
SQL code
update tb set pro_mimg=replace(pro_mimg,pro_img+'|','')
[/Quote]
chi1983 2011-01-23
  • 打赏
  • 举报
回复
pro_mage 是pro_mimg吗?
这好像是只把pro_mimg改了,但pro_img没改成pro_mimg的第二项啊

[Quote=引用 4 楼 qianjin036a 的回复:]
在MSSQL里,这个需求的语句可以这样写:

SQL code
update products set pro_mage=
substring(pro_mimg,charindex('|',pro_mimg),charindex('|',pro_mimg,charindex('|',pro_mimg)-charindex('|',pro_mimg)-1)),
pro_mimg=right……
[/Quote]
-晴天 2011-01-23
  • 打赏
  • 举报
回复
对了,上面取出第二个|的charindex函数改为MYSQL时应用 locate() 函数.
-晴天 2011-01-23
  • 打赏
  • 举报
回复
MSSQL与MYSQL语句函数的不同在于:
charindex --> instr
substring --> substring
right --> right
len --> length
快溜 2011-01-23
  • 打赏
  • 举报
回复
update tb set pro_mimg=replace(pro_mimg,pro_img+'|','')
-晴天 2011-01-23
  • 打赏
  • 举报
回复
在MSSQL里,这个需求的语句可以这样写:
update products set pro_mage=
substring(pro_mimg,charindex('|',pro_mimg),charindex('|',pro_mimg,charindex('|',pro_mimg)-charindex('|',pro_mimg)-1)),
pro_mimg=right(pro_mimg,len(pro_mimg)-charindex('|',pro_mimg))
where pro_img='4108mhX07-L.jpg'
chi1983 2011-01-23
  • 打赏
  • 举报
回复
好的,谢谢了
cjzm83 2011-01-23
  • 打赏
  • 举报
回复
哥哥,画错版了
王向飞 2011-01-23
  • 打赏
  • 举报
回复
mysql问题请去mysql版
https://forum.csdn.net/SList/MySQLPostgresql/

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧