Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak wyodrębnić wartość liczbową z ciągu w zapytaniu MySQL?

Ta funkcja ma za zadanie zwracać tylko cyfry 0-9 z ciągu, co dobrze rozwiązuje problem, niezależnie od tego, jakie masz przedrostki lub przyrostki.

http://www.artfulsoftware.com/infotree/queries.php ?&bw=1280#815

Skopiowano tutaj w celach informacyjnych:

SET GLOBAL log_bin_trust_function_creators=1;
DROP FUNCTION IF EXISTS digits;
DELIMITER |
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 |
DELIMITER ;

SELECT digits('$10.00Fr'); 
#returns 1000


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pięć najlepszych aplikacji umożliwiających dostęp do serwerów MySQL/MariaDB

  2. Przechowuj obraz w blobu bazy danych; pobierz z db do Picturebox

  3. Jak korzystać z przygotowanych zestawień w CodeIgniter?

  4. JDBC zwraca wyjątek MySQLSyntaxError z poprawną instrukcją

  5. Jak przekonwertować epoch na znacznik czasu mySQL w JAVA