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有问题还是本来就只能识别一次? 求解决。
在where中使用正则