ホームページ > データベース > mysql チュートリアル > MySQL で HTML タグを削除した後、データベース レコードを効率的に検索するにはどうすればよいですか?

MySQL で HTML タグを削除した後、データベース レコードを効率的に検索するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-01 00:17:17
オリジナル
926 人が閲覧しました

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

データベース レコードからの HTML タグの削除

MySQL では、特定の手法を使用して特定の列から HTML タグを削除できます。次のデータについて考えてみましょう:

SELECT *
FROM table
WHERE colmn_name ` like '%mytext%'
ログイン後にコピー

このクエリは、コンテンツ内に「mytext」が含まれるのは行 3 のみですが、4 行すべてを返します。目的の結果 (行 3 のみ) を得るには、より正確なアプローチが必要です。

解決策の 1 つは、ユーザー定義関数 (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%'
ログイン後にコピー

この改訂されたクエリは、非 HTML コンテンツ内に「mytext」を含む行 3 のみを返します。

以上がMySQL で HTML タグを削除した後、データベース レコードを効率的に検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート