Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengekstrak Aksara Berangka daripada Data MySQL untuk Perbandingan Tepat?

Bagaimana untuk Mengekstrak Aksara Berangka daripada Data MySQL untuk Perbandingan Tepat?

Patricia Arquette
Patricia Arquetteasal
2024-12-07 21:16:16397semak imbas

How to Extract Numeric Characters from MySQL Data for Accurate Comparisons?

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!

Kenyataan:
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