Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mencari Lajur Pangkalan Data untuk Teks Semasa Mengabaikan Teg HTML?

Bagaimanakah Saya Boleh Mencari Lajur Pangkalan Data untuk Teks Semasa Mengabaikan Teg HTML?

Linda Hamilton
Lepaskan: 2024-12-06 14:31:12
asal
946 orang telah melayarinya

How Can I Search a Database Column for Text While Ignoring HTML Tags?

Mengalih keluar Teg HTML daripada Rekod Pangkalan Data

Anda cuba mengekstrak baris daripada jadual pangkalan data di mana lajur tertentu mengandungi kata kunci "mytext " tetapi menghadapi keputusan yang salah. Jadual mengandungi baris dengan pelbagai darjah tag HTML yang melampirkan rentetan. Untuk mengenal pasti baris yang mengandungi teks yang dikehendaki dengan tepat, adalah penting untuk mengecualikan teks yang dibalut dalam teg HTML.

Satu penyelesaian yang mungkin melibatkan penggunaan fungsi MySQL tersuai yang dikenali sebagai fnStripTags. Fungsi ini mengambil rentetan sebagai input dan mengalih keluar semua teg HTML, memberikan output teks semata-mata.

Kod:

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

Penggunaan:

Setelah fungsi ditakrifkan, anda boleh menggunakannya dalam pertanyaan anda untuk mengecualikan teg HTML daripada carian:

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

Pertanyaan yang diubah suai ini hanya akan mengembalikan baris yang teks yang dilucutkan mengandungi rentetan "teks saya," memberikan anda hasil yang betul:

Row 3: <p>This is the Third row  my mytext is there  </p>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Lajur Pangkalan Data untuk Teks Semasa Mengabaikan Teg HTML?. 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