Maison >base de données >tutoriel mysql >Comment extraire des caractères numériques des données MySQL pour des comparaisons précises ?

Comment extraire des caractères numériques des données MySQL pour des comparaisons précises ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-07 21:16:16398parcourir

How to Extract Numeric Characters from MySQL Data for Accurate Comparisons?

Extraction de caractères numériques à partir de données MySQL pour des comparaisons précises

Pour comparer des valeurs numériques spécifiques dans une table MySQL, où les entrées de base de données peuvent contenir des valeurs non -caractères numériques, une méthode fiable est nécessaire pour supprimer ces caractères non numériques. Alors que les fonctions PHP comme preg_replace offrent une solution pratique, MySQL nécessite une approche native.

Fonction MySQL pour supprimer les non-chiffres

Pour effectuer efficacement cette tâche, la commande MySQL suivante une fonction peut être créée :

CREATE FUNCTION STRIP_NON_DIGIT(input VARCHAR(255))
RETURNS VARCHAR(255)
BEGIN
   DECLARE output   VARCHAR(255) DEFAULT '';
   DECLARE iterator INT          DEFAULT 1;
   WHILE iterator < (LENGTH(input) + 1) DO
      IF SUBSTRING(input, iterator, 1) IN ( '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' ) THEN
         SET output = CONCAT(output, SUBSTRING(input, iterator, 1));
      END IF;
      SET iterator = iterator + 1;
   END WHILE;
   RETURN output;
END

Utilisation

Pour utilisez la fonction STRIP_NON_DIGIT dans une requête, appliquez-la simplement à la colonne cible comme suit :

SELECT * FROM foo WHERE STRIP_NON_DIGIT(bar) = '12345';

Cette requête récupérera les enregistrements où la colonne à barres, après avoir supprimé ses caractères non numériques, correspond à la saisie de l'utilisateur de '12345'.

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