Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mencari Rekod Pangkalan Data dengan Cekap Selepas Mengalih Keluar Tag HTML dalam MySQL?

Bagaimanakah Saya Boleh Mencari Rekod Pangkalan Data dengan Cekap Selepas Mengalih Keluar Tag HTML dalam MySQL?

Mary-Kate Olsen
Lepaskan: 2025-01-01 00:17:17
asal
926 orang telah melayarinya

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

Mengalih keluar Teg HTML daripada Rekod Pangkalan Data

Dalam MySQL, mengalih keluar teg HTML daripada lajur tertentu boleh dicapai menggunakan teknik tertentu. Pertimbangkan data berikut:

SELECT *
FROM table
WHERE colmn_name ` like '%mytext%'
Salin selepas log masuk

Pertanyaan ini mengembalikan semua empat baris walaupun hanya Baris 3 mengandungi "teks saya" dalam kandungan. Untuk mendapatkan hasil yang diingini, Baris 3 sahaja, pendekatan yang lebih tepat diperlukan.

Satu penyelesaian melibatkan penggunaan fungsi takrif pengguna (UDF) untuk menanggalkan teg HTML. Berikut ialah contoh:

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 ;
Salin selepas log masuk

Fungsi ini, fnStripTags(), secara berulang mencari dan mengalih keluar semua teg HTML daripada rentetan input yang diberikan. Ia boleh digunakan dalam pertanyaan seperti berikut:

SELECT *
FROM table
WHERE fnStripTags(colmn_name) LIKE '%mytext%'
Salin selepas log masuk

Pertanyaan yang disemak ini hanya akan mengembalikan Baris 3, yang mengandungi "teks saya" dalam kandungan bukan HTMLnya.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Rekod Pangkalan Data dengan Cekap Selepas Mengalih Keluar Tag HTML dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan