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!