SQL批量删除字符中间的动态内容
post表,字段content中有如下内容:
<a href="http://www.xx.com/" data-cfemail="sdfsdfsd7eoi7d61d2">[email protected]</a>
<a href="http://www.xx.com/" data-cfemail="0d6a68797rdd7d61aa">[email protected]</a>
<a href="http://www.xx.com/" data-cfemail="easdf797e4df6d1sdf">[email protected]</a>
<a href="http://www.xx.com/" data-cfemail="0s6ad68797e4d7d6d9">[email protected]</a>
要批量删除 data-cfemail="这里边的内容",我写了如下SQL:
UPDATE post
SET content = REPLACE (
content,
substring(
content,
locate( 'data-cfemail="', content ) + CHAR_LENGTH( 'data-cfemail="' ),
locate( '">[email protected]', content, CHAR_LENGTH( 'data-cfemail="' ) ) - (
SELECT
locate( 'data-cfemail="', content ) + CHAR_LENGTH( 'data-cfemail="' )
)
),
''
)
运行后可以删除第一条 data-cfemail="这里边的内容" ,再执行就一直是成功0条,请问为什么只匹配了一次呢?是一条数据里有多个匹配值。是SQL有问题还是本来就只能识别一次? 求解决。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在where中使用正则