Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara mendapatkan hanya Digit dari String di mysql?

Jika string dimulai dengan angka, kemudian berisi karakter non-numerik, Anda dapat menggunakan CAST() fungsi atau mengubahnya menjadi numerik secara implisit dengan menambahkan 0 :

SELECT CAST('1234abc' AS UNSIGNED); -- 1234
SELECT '1234abc'+0; -- 1234

Untuk mengekstrak nomor dari sewenang-wenang string Anda dapat menambahkan fungsi khusus seperti ini :

DELIMITER $$

CREATE FUNCTION `ExtractNumber`(in_string VARCHAR(50)) 
RETURNS INT
NO SQL
BEGIN
    DECLARE ctrNumber VARCHAR(50);
    DECLARE finNumber VARCHAR(50) DEFAULT '';
    DECLARE sChar VARCHAR(1);
    DECLARE inti INTEGER DEFAULT 1;

    IF LENGTH(in_string) > 0 THEN
        WHILE(inti <= LENGTH(in_string)) DO
            SET sChar = SUBSTRING(in_string, inti, 1);
            SET ctrNumber = FIND_IN_SET(sChar, '0,1,2,3,4,5,6,7,8,9'); 
            IF ctrNumber > 0 THEN
                SET finNumber = CONCAT(finNumber, sChar);
            END IF;
            SET inti = inti + 1;
        END WHILE;
        RETURN CAST(finNumber AS UNSIGNED);
    ELSE
        RETURN 0;
    END IF;    
END$$

DELIMITER ;

Setelah fungsi didefinisikan, Anda dapat menggunakannya dalam kueri Anda:

SELECT ExtractNumber("abc1234def") AS number; -- 1234


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menampilkan Kumpulan Server di MySQL

  2. Peningkatan Otomatis setelah dihapus di MySQL

  3. Bagaimana Memperbaiki Masalah Umum dengan Database MySQL?

  4. Menggunakan SqlDataAdapter untuk menyisipkan baris

  5. Kolom tidak dikenal dalam kesalahan 'daftar bidang' pada permintaan Pembaruan MySQL