Rumah >pangkalan data >tutorial mysql >Bagaimana Mengeluarkan Tag HTML dengan Berkesan daripada Rekod Pangkalan Data untuk Hasil Carian yang Tepat?
Apabila mengekstrak maklumat khusus daripada jadual pangkalan data yang mengandungi teks berformat HTML, adalah penting untuk mengalih keluar teg HTML untuk ketepatan keputusan. Walaupun pertanyaan SUKA mudah seperti "WHERE column_name LIKE '%mytext%'" boleh mendapatkan semula semua baris yang mengandungi 'mytext', ia juga mungkin termasuk baris yang 'mytext' muncul dalam teg HTML.
Untuk menangani isu ini, pendekatan yang lebih berkesan melibatkan mencipta fungsi MySQL tersuai yang secara khusus mengalih keluar teg HTML daripada rentetan tertentu. Berikut ialah kod untuk fungsi sedemikian:
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 ;
Dengan menggunakan fungsi ini, pertanyaan menjadi:
SELECT * from table WHERE fnStripTags(column_name) LIKE '%mytext%'
Kini, pertanyaan hanya akan mengembalikan baris di mana 'teks saya' muncul dalam kandungan itu sendiri, tidak termasuk sebarang kejadian dalam teg HTML. Ini memberikan hasil yang lebih tepat dan relevan, memastikan hanya data yang diingini diambil semula.
Atas ialah kandungan terperinci Bagaimana Mengeluarkan Tag HTML dengan Berkesan daripada Rekod Pangkalan Data untuk Hasil Carian yang Tepat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!