求语句,批量删除mysql数据库中所有以<开头,以>结尾的字符串
发布网友
发布时间:2022-04-09 08:05
我来回答
共5个回答
热心网友
时间:2022-04-09 09:35
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
热心网友
时间:2022-04-09 10:53
如果你会点PHP的话,其实很简单。
读取数据->strip_tags函数去标签->保存数据 (如果复杂可以写正则,不过你的要求这个就够了)
不推荐在数据库中作这样的操作,当然写个这样的存储过程其实也不难。思路你可以看看strip_tags函数的源代码,其实就是合理的正则分组引用替换。
热心网友
时间:2022-04-09 12:27
在SQL 里可以这样写 “<%>” 表示以<开头,以>结尾的字符串
热心网友
时间:2022-04-09 14:19
这个SQL语句有点难度,但你可以在后面取数据的时候对数据进行替换,这个就要简单多了。
热心网友
时间:2022-04-09 16:27
update `cdb_posts` set `message`='' where message REGEXP "<*>";