Mendapatkan Nilai Berangka daripada Rentetan dalam Pertanyaan MySQL
Menghadapi ketidakpadanan antara dua lajur yang mengandungi harga, seorang pengguna mencari penyelesaian untuk mengekstrak berangka nilai daripada perwakilan rentetan dalam lajur price_display dan kemas kini harga yang sepadan lajur.
Satu pendekatan yang berjaya menggunakan fungsi yang secara khusus mengekstrak digit daripada rentetan, dengan itu menampung pelbagai awalan atau postfix. Fungsi ini, berlabel 'digit,' telah dicipta seperti berikut:
CREATE FUNCTION digits( str CHAR(32) ) RETURNS CHAR(32) BEGIN DECLARE i, len SMALLINT DEFAULT 1; DECLARE ret CHAR(32) DEFAULT ''; DECLARE c CHAR(1); IF str IS NULL THEN RETURN ""; END IF; SET len = CHAR_LENGTH( str ); REPEAT BEGIN SET c = MID( str, i, 1 ); IF c BETWEEN '0' AND '9' THEN SET ret=CONCAT(ret,c); END IF; SET i = i + 1; END; UNTIL i > len END REPEAT; RETURN ret; END;
Untuk menunjukkan keberkesanannya, pertimbangkan pertanyaan:
SELECT digits('.00Fr');
Outputnya ialah '1000,' sepadan dengan nilai berangka yang dijangkakan. Fungsi tersuai ini menyediakan kaedah yang boleh dipercayai untuk mengekstrak nilai berangka daripada rentetan dalam pertanyaan MySQL, menangani keperluan khusus pengguna.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Nilai Berangka daripada Rentetan dalam Pertanyaan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!