求语句,批量删除mysql数据库中所有以<开头,以>结尾的字符串

discuz论坛,想批量删除cdb_posts表message列中所有以<开头,以>结尾的字符串。语句的格式很简单:update`cdb_posts`set`messag... discuz论坛,想批量删除cdb_posts表message列中所有以<开头,以>结尾的字符串。
语句的格式很简单:
update `cdb_posts` set `message`=REPLACE(`message`, '', '')
却不知这个“以<开头,以>结尾”应该怎么表示。
请懂的朋友指教。谢谢。
已经有朋友在百度知道里问过,但没有得到解答,所以高分求教。
message字段里的内容不止包含一对<>,比如:“<p>鹅,鹅,鹅。</p><p>曲项向天歌,</p><p>白毛浮绿水,</p><p>红掌拨清波。”需要把所有的<>中的字符全部删除。
展开
 我来答
百度网友e89d670f9
2010-09-29 · TA获得超过148个赞
知道小有建树答主
回答量:179
采纳率:0%
帮助的人:114万
展开全部
DECLARE @B TABLE(NAME VARCHAR(200))
INSERT @B
SELECT '<p>鹅,鹅,鹅。</p><p>曲项向天歌,</p><p>白毛浮绿水,</p><p>红掌拨清波。'
SELECT * FROM @B
WHILE EXISTS(SELECT 1 FROM @B WHERE CHARINDEX('<',NAME)>0 AND CHARINDEX('>',NAME)>CHARINDEX('<',NAME) )
BEGIN
UPDATE @b SET NAME=STUFF(NAME,CHARINDEX('<',NAME),CHARINDEX('>',NAME)-CHARINDEX('<',NAME)+1,'')
WHERE CHARINDEX('<',NAME)>0 AND CHARINDEX('>',NAME)>CHARINDEX('<',NAME)
END

SELECT * FROM @b
NAME
-----------------------------------------------
鹅,鹅,鹅。曲项向天歌,白毛浮绿水,红掌拨清波。

(所影响的行数为 1 行)

SQL SERVER
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
152434288
2010-10-07
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
如果你会点PHP的话,其实很简单。
读取数据->strip_tags函数去标签->保存数据 (如果复杂可以写正则,不过你的要求这个就够了)
不推荐在数据库中作这样的操作,当然写个这样的存储过程其实也不难。思路你可以看看strip_tags函数的源代码,其实就是合理的正则分组引用替换。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
charleszhangji
推荐于2018-04-11 · TA获得超过4554个赞
知道小有建树答主
回答量:887
采纳率:0%
帮助的人:960万
展开全部
在SQL 里可以这样写 “<%>” 表示以<开头,以>结尾的字符串
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ryuting
2010-09-28 · TA获得超过113个赞
知道答主
回答量:224
采纳率:0%
帮助的人:90.7万
展开全部
这个SQL语句有点难度,但你可以在后面取数据的时候对数据进行替换,这个就要简单多了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来吧_角儿
2010-09-28 · TA获得超过693个赞
知道小有建树答主
回答量:553
采纳率:0%
帮助的人:315万
展开全部
update `cdb_posts` set `message`='' where message REGEXP "<*>";
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式