首页 > 数据库 > mysql教程 > MySQL去除HTML标签后如何高效检索数据库记录?

MySQL去除HTML标签后如何高效检索数据库记录?

Mary-Kate Olsen
发布: 2025-01-01 00:17:17
原创
950 人浏览过

How Can I Efficiently Search Database Records After Removing HTML Tags in MySQL?

从数据库记录中删除 HTML 标签

在 MySQL 中,可以使用特定技术来实现从特定列中删除 HTML 标签。考虑以下数据:

SELECT *
FROM table
WHERE colmn_name ` like '%mytext%'
登录后复制

即使只有第 3 行内容中包含“mytext”,此查询也会返回所有四行。为了仅获得第 3 行所需的结果,需要更精确的方法。

一种解决方案涉及使用用户定义函数 (UDF) 来去除 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 ;
登录后复制

此函数 fnStripTags() 会迭代地从给定的输入字符串中查找并删除所有 HTML 标签。它可以在查询中使用,如下所示:

SELECT *
FROM table
WHERE fnStripTags(colmn_name) LIKE '%mytext%'
登录后复制

此修改后的查询将仅返回第 3 行,其中在其非 HTML 内容中包含“mytext”。

以上是MySQL去除HTML标签后如何高效检索数据库记录?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板