Suppression des caractères non numériques dans MySQL pour faciliter les comparaisons
Pour trouver des enregistrements correspondants en fonction de la saisie numérique des utilisateurs, il est nécessaire de prendre en compte caractères non numériques dans les valeurs de la base de données. Cet article explore une fonction MySQL pour supprimer ces caractères non numériques et faciliter des comparaisons précises.
Énoncé du problème
Étant donné une table avec un champ contenant des nombres potentiellement entrecoupés de non -caractères numériques, la tâche consiste à trouver des enregistrements qui correspondent à une entrée numérique spécifique saisie par l'utilisateur.
MySQL Fonction : STRIP_NON_DIGIT
Pour résoudre ce problème, une fonction MySQL appelée STRIP_NON_DIGIT peut être créée :
DROP FUNCTION IF EXISTS STRIP_NON_DIGIT; DELIMITER $$ 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 $$
Exemple de travail
Pour utilisez la fonction STRIP_NON_DIGIT, exécutez des requêtes SQL comme la suivant :
SELECT * FROM foo WHERE STRIP_NON_DIGIT(bar) = '12345';
Cette requête renverra les enregistrements de la table 'foo' où la valeur dans le champ 'bar' dépourvu de caractères non numériques correspond à '12345' entré par l'utilisateur.
Avantages
Cette fonction fournit une solution simple et efficace au problème de la comparaison de valeurs numériques avec caractères non numériques dans les bases de données MySQL. Il élimine le besoin d'expressions régulières complexes ou de fonctions PHP et est facile à mettre en œuvre.
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!