Something

首页 / 文章 / RSS

如何移除MySQL字段中的Html标签

在处理文本数据时,我们经常会遇到需要清除HTML标签的情况,在MySQL中,我们可以使用正则表达式和一些字符串函数来实现这一目标。 本文将介绍如何使用MySQL清除HTML标签。

MySQL 8

使用原生函数。

SELECT REGEXP_REPLACE(field, '<[^>]*>+', '') FROM table

MySQL 8以下版本

使用自定义函数。

DROP FUNCTION IF EXISTS fnRemoveHtml;

DELIMITER $$
$$
CREATE DEFINER=`root`@`%` FUNCTION `fnRemoveHtml`( Dirty text(0) ) RETURNS text CHARSET utf8
BEGIN
  -- 过滤HTML字符串
  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 ;