求语句,批量删除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>红掌拨清波。”需要把所有的<>中的字符全部删除。 展开
语句的格式很简单:
update `cdb_posts` set `message`=REPLACE(`message`, '', '')
却不知这个“以<开头,以>结尾”应该怎么表示。
请懂的朋友指教。谢谢。
已经有朋友在百度知道里问过,但没有得到解答,所以高分求教。
message字段里的内容不止包含一对<>,比如:“<p>鹅,鹅,鹅。</p><p>曲项向天歌,</p><p>白毛浮绿水,</p><p>红掌拨清波。”需要把所有的<>中的字符全部删除。 展开
5个回答
展开全部
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你会点PHP的话,其实很简单。
读取数据->strip_tags函数去标签->保存数据 (如果复杂可以写正则,不过你的要求这个就够了)
不推荐在数据库中作这样的操作,当然写个这样的存储过程其实也不难。思路你可以看看strip_tags函数的源代码,其实就是合理的正则分组引用替换。
读取数据->strip_tags函数去标签->保存数据 (如果复杂可以写正则,不过你的要求这个就够了)
不推荐在数据库中作这样的操作,当然写个这样的存储过程其实也不难。思路你可以看看strip_tags函数的源代码,其实就是合理的正则分组引用替换。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在SQL 里可以这样写 “<%>” 表示以<开头,以>结尾的字符串
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个SQL语句有点难度,但你可以在后面取数据的时候对数据进行替换,这个就要简单多了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
update `cdb_posts` set `message`='' where message REGEXP "<*>";
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询