Maison >base de données >tutoriel mysql >Comment puis-je extraire des valeurs numériques à partir de chaînes dans des requêtes MySQL ?

Comment puis-je extraire des valeurs numériques à partir de chaînes dans des requêtes MySQL ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-04 13:18:10292parcourir

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

Obtention de valeurs numériques à partir de chaînes dans des requêtes MySQL

Rencontreant une inadéquation entre deux colonnes contenant des prix, un utilisateur a cherché une solution pour extraire le chiffre valeur de la représentation sous forme de chaîne dans la colonne price_display et mettez à jour la colonne de prix correspondante.

Une approche réussie utilisait une fonction qui spécifiquement chiffres extraits de la chaîne, accueillant ainsi divers préfixes ou suffixes. Cette fonction, intitulée « chiffres », a été créée comme suit :

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;

Pour démontrer son efficacité, considérons la requête :

SELECT digits('.00Fr');

Le résultat serait « 1 000 », correspondant au valeur numérique attendue. Cette fonction personnalisée fournit une méthode fiable pour extraire des valeurs numériques à partir de chaînes dans les requêtes MySQL, répondant aux besoins spécifiques de l'utilisateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn