ホームページ >データベース >mysql チュートリアル >正確な検索結果を得るためにデータベース レコードから HTML タグを効果的に削除するにはどうすればよいですか?

正確な検索結果を得るためにデータベース レコードから HTML タグを効果的に削除するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-06 09:12:10945ブラウズ

How to Effectively Remove HTML Tags from Database Records for Accurate Search Results?

データベース レコードから HTML タグを効果的に削除する方法

HTML 形式のテキストを含むデータベース テーブルから特定の情報を抽出する場合、正確な情報を得るために HTML タグを削除することが不可欠です。結果。 「WHERE column_name LIKE '%mytext%'」のような単純な LIKE クエリは、「mytext」を含むすべての行を取得できますが、HTML タグ内に「mytext」が出現する行も含まれる可能性があります。

この問題に対処するには、より効果的なアプローチには、特定の文字列から HTML タグを特別に削除するカスタム MySQL 関数を作成することが含まれます。このような関数のコードは次のとおりです。

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 * from table WHERE fnStripTags(column_name) LIKE '%mytext%'

これで、クエリは、 HTML タグ内のインスタンスを除く、コンテンツ自体。これにより、より正確で関連性の高い結果が得られ、必要なデータのみが確実に取得されます。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。