如何运行mySQL函数更新所有行?

Atul Tiwari博士

我试图直接通过MySQL从所有记录中剥离HTML标签。多亏了StackOverflow的这个问题,我找到了以下功能,这种功能可以去除html标签-

SET GLOBAL log_bin_trust_function_creators=1;
DROP FUNCTION IF EXISTS fnStripTags;
DELIMITER |
CREATE FUNCTION fnStripTags( Dirty varchar(4000) )
RETURNS varchar(4000)
DETERMINISTIC 
BEGIN
  DECLARE iStart, iEnd, iLength int;
    WHILE Locate( '<', Dirty ) > 0 And Locate( '>', Dirty, Locate( '<', Dirty )) > 0 DO
      BEGIN
        SET iStart = Locate( '<', Dirty ), iEnd = Locate( '>', Dirty, Locate('<', Dirty ));
        SET iLength = ( iEnd - iStart) + 1;
        IF iLength > 0 THEN
          BEGIN
            SET Dirty = Insert( Dirty, iStart, iLength, '');
          END;
        END IF;
      END;
    END WHILE;
    RETURN Dirty;
END;
|
DELIMITER ;
SELECT fnStripTags('this <html>is <b>a test</b>, nothing more</html>');

但是我无法找出如何使用此功能更新所有记录。例如,我在的Address列中有记录myTable,我想使用上述函数从HTML标记中剥离HTML标记。如何Address使用提到的功能直接更新列的所有记录,或者如果无法直接更新,则可以通过任何方法将所有更新的记录插入表的第二列Address_Stripped

PS,我知道,我的问题没有做任何研究来自己找到答案,但这仅仅是因为我不知道如何搜索。

穆雷尼克

您只需要在update语句中调用此函数

UPDATE mytable
SET    address = fnStripTags(address)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章