Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membandingkan Data Numerik dengan Aksara Bukan Angka dengan Cekap dalam MySQL?

Bagaimana untuk Membandingkan Data Numerik dengan Aksara Bukan Angka dengan Cekap dalam MySQL?

DDD
DDDasal
2024-12-09 15:03:14775semak imbas

How to Efficiently Compare Numeric Data with Non-Numeric Characters in MySQL?

Melucutkan Aksara Bukan Angka dalam MySQL untuk Memudahkan Perbandingan

Untuk mencari rekod yang sepadan berdasarkan input angka daripada pengguna, anda perlu mengambil kira aksara bukan angka dalam nilai pangkalan data. Artikel ini meneroka fungsi MySQL untuk menanggalkan aksara bukan angka ini dan memudahkan perbandingan yang tepat.

Pernyataan Masalah

Diberikan jadual dengan medan yang mengandungi nombor yang berpotensi diselangi dengan bukan -aksara angka, tugasnya adalah untuk mencari rekod yang sepadan dengan input angka tertentu yang dimasukkan oleh pengguna.

Fungsi MySQL: STRIP_NON_DIGIT

Untuk menangani masalah ini, fungsi MySQL yang dipanggil STRIP_NON_DIGIT boleh dibuat:

DROP FUNCTION IF EXISTS STRIP_NON_DIGIT;
DELIMITER $$
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
$$

Contoh Kerja

Untuk menggunakan Fungsi STRIP_NON_DIGIT, laksanakan pertanyaan SQL seperti berikut:

SELECT * FROM foo WHERE STRIP_NON_DIGIT(bar) = '12345';

Pertanyaan ini akan mengembalikan rekod daripada jadual 'foo' di mana nilai dalam medan 'bar' yang dilucutkan daripada aksara bukan angka sepadan dengan '12345' yang dimasukkan oleh pengguna.

Faedah

Fungsi ini menyediakan penyelesaian yang mudah dan cekap untuk masalah membandingkan nilai angka dengan aksara bukan angka dalam pangkalan data MySQL. Ia menghapuskan keperluan untuk ungkapan biasa yang kompleks atau fungsi PHP dan mudah untuk dilaksanakan.

Atas ialah kandungan terperinci Bagaimana untuk Membandingkan Data Numerik dengan Aksara Bukan Angka dengan Cekap dalam MySQL?. 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