SQL语句(mysql)怎么去掉字段内一部分内容

yf829 2010-08-06 11:27:39
“阳光 沙滩 晚风 夕阳 呵呵呵炒股不是全部 好想去海边吹吹风…<br/><a href=" http://From3ebd325c7bf6cb35dced7c5f06f4/HQ/HQ.DLL?t=stock;StkCode=300053;X=Rand3ebd325c7”是数据表里面一个字段的内容,
我要用sql语句去掉<br/>(连同<br/>在内)后面的内容要怎么写SQL更新语句?

...全文
407 点赞 收藏 9
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dleno 2010-08-06
[Quote=引用 7 楼 xuzuning 的回复:]

update 表 set 字段名 = left(字段名, LOCATE('<br/>', 字段名)-1) where 字段名 like '%<br/>%'
[/Quote]
还是老大的简洁
回复
Dleno 2010-08-06
充分利用mysql自带的函数,还是可以实现这个功能的

update tablename set `字段名`=REPLACE(`字段名`,SUBSTRING(`字段名`,INSTR(`字段名`,'<br/>')),'') where `字段名` REGEXP '\<br\/\>.*$'
回复
xuzuning 2010-08-06
update 表 set 字段名 = left(字段名, LOCATE('<br/>', 字段名)-1) where 字段名 like '%<br/>%'
回复
床上等您 2010-08-06
mysql 可以正则查找,不可以替换吧??
回复
无笔秀才 2010-08-06
REPLACE 这样只能替换 掉<br/>,但是, <br/>后面的还是存在。
建议写个存储过程,先查出这个字段。然后用 POSITION 找到<br/>的位置,截取一下,再update回去。可能是个本办法 呵呵。。
或者像2楼说的 再Php里处理更好。
回复
Dleno 2010-08-06
update tablename set 字段名=REPLACE(字段名,SUBSTRING(字段名,INSTR(字段名,'<br/>')),'') where 字段名 REGEXP '\<br\/\>.*$'
语句就是这样吧,前面的少了个括号,REGEXP '\<br\/\>.*$'的正则写对没有就不知道了,有问题都是正则的问题了,没测试的
回复
Dleno 2010-08-06
仔细查了文档,找到如下方式,不过效率怎么样就不知道了

字段名=REPLACE(字段名,SUBSTRING(字段名,INSTR(字段名,'<br/>'),'')
回复
CunningBoy 2010-08-06
sql查询出来用php替换吧
sql语句的话可能要用存储过程
回复
Dleno 2010-08-06
mysql不支持正则替换。

你只有利用正则
select 要替换的字段 from tablename 要替换的字段 REGEXP '\<br\/\>.*$'//语句对不对没测试过的。

来查询出符合条件的记录。
然后循环的在程序里来将要替换的字段的内容替换掉,再更新数据
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告