Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Membandingkan Nilai Angka dalam MySQL Walaupun Aksara Bukan Angka?

Bagaimana untuk Membandingkan Nilai Angka dalam MySQL Walaupun Aksara Bukan Angka?

DDD
Lepaskan: 2024-12-06 14:40:17
asal
424 orang telah melayarinya

How to Compare Numeric Values in MySQL Despite Non-Numeric Characters?

MySQL: Melucutkan Aksara Bukan Angka untuk Perbandingan

Dalam MySQL, anda boleh menapis rekod berdasarkan nombor tertentu yang dimasukkan pengguna, walaupun nilai berangka yang disimpan dalam pangkalan data berbeza disebabkan oleh aksara bukan angka yang tidak diingini. Untuk mencapai matlamat ini, pertimbangkan untuk menggunakan pendekatan berikut:

Fungsi STRIP_NON_DIGIT yang disediakan di bawah mengalih keluar aksara bukan digit daripada rentetan input, membolehkan perbandingan terus nilai berangka:

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
$$
Salin selepas log masuk

Dengan fungsi ini , anda boleh menapis rekod seperti berikut:

SELECT * FROM foo WHERE STRIP_NON_DIGIT(bar) = '12345'
Salin selepas log masuk

Pertanyaan ini akan mendapatkan semula rekod di mana nilai berangka dalam lajur 'bar' sepadan dengan '12345', walaupun nilai yang disimpan dalam pangkalan data termasuk aksara bukan angka seperti '123zz4-5'.

Atas ialah kandungan terperinci Bagaimana untuk Membandingkan Nilai Angka dalam MySQL Walaupun Aksara Bukan Angka?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan