Mengekstrak Aksara Berangka daripada Data MySQL untuk Perbandingan Tepat
Untuk membandingkan dengan nilai berangka tertentu dalam jadual MySQL, di mana entri pangkalan data mungkin mengandungi bukan -aksara angka, kaedah yang boleh dipercayai diperlukan untuk menghapuskan bukan angka tersebut. Walaupun fungsi PHP seperti preg_replace menawarkan penyelesaian yang mudah, MySQL memerlukan pendekatan asli.
Fungsi MySQL untuk Menghapuskan Bukan Digit
Untuk melaksanakan tugas ini dengan berkesan, MySQL berikut fungsi boleh dicipta:
CREATE FUNCTION STRIP_NON_DIGIT(input VARCHAR(255)) RETURNS VARCHAR(255) BEGIN DECLARE output VARCHAR(255) DEFAULT ''; DECLARE iterator INT DEFAULT 1; WHILE iterator < (LENGTH(input) + 1) DO IF SUBSTRING(input, iterator, 1) IN ( '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' ) THEN SET output = CONCAT(output, SUBSTRING(input, iterator, 1)); END IF; SET iterator = iterator + 1; END WHILE; RETURN output; END
Penggunaan
Untuk menggunakan fungsi STRIP_NON_DIGIT dalam pertanyaan, hanya gunakannya pada lajur sasaran seperti berikut:
SELECT * FROM foo WHERE STRIP_NON_DIGIT(bar) = '12345';
Pertanyaan ini akan mendapatkan semula rekod di mana lajur bar, selepas aksara bukan angkanya dialih keluar, sepadan dengan input pengguna '12345'.
Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Aksara Berangka daripada Data MySQL untuk Perbandingan Tepat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!