首頁 > 資料庫 > mysql教程 > MySQL去除HTML標籤後如何有效率地檢索資料庫記錄?

MySQL去除HTML標籤後如何有效率地檢索資料庫記錄?

Mary-Kate Olsen
發布: 2025-01-01 00:17:17
原創
947 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板