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!