Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mengeluarkan Nilai Berangka daripada Rentetan dalam Pertanyaan MySQL?

Bagaimanakah Saya Boleh Mengeluarkan Nilai Berangka daripada Rentetan dalam Pertanyaan MySQL?

Patricia Arquette
Lepaskan: 2024-12-04 13:18:10
asal
292 orang telah melayarinya

How Can I Extract Numerical Values from Strings in MySQL Queries?

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

Untuk menunjukkan keberkesanannya, pertimbangkan pertanyaan:

SELECT digits('.00Fr');
Salin selepas log masuk

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan