Maison > base de données > tutoriel mysql > Comment puis-je filtrer efficacement les caractères non alphanumériques des chaînes MySQL ?

Comment puis-je filtrer efficacement les caractères non alphanumériques des chaînes MySQL ?

DDD
Libérer: 2024-12-07 20:28:14
original
272 Les gens l'ont consulté

How Can I Efficiently Filter Non-Alphanumeric Characters from MySQL Strings?

Filtrage efficace des caractères dans les chaînes MySQL

Lors de la comparaison des chaînes pour des raisons d'efficacité, il est crucial d'éliminer les caractères non alphanumériques. Au lieu d'utiliser plusieurs fonctions REPLACE, envisagez d'utiliser des solutions alternatives.

MySQL 8.0 et versions ultérieures

MySQL 8.0 prend en charge le remplacement d'expressions régulières, vous permettant de remplacer les caractères non alphanumériques par une chaîne vide :

UPDATE {table} SET {column} = REGEXP_REPLACE({column}, '[^0-9a-zÀ-ÿ ]', '')
Copier après la connexion

MySQL 5.7 et Ci-dessous

Comme les expressions régulières ne sont pas prises en charge dans MySQL 5.7, vous pouvez créer une fonction personnalisée telle que la suivante :

DROP FUNCTION IF EXISTS alphanum; 
DELIMITER | 
CREATE FUNCTION alphanum( str CHAR(255) ) RETURNS CHAR(255) DETERMINISTIC
BEGIN 
  DECLARE i, len SMALLINT DEFAULT 1; 
  DECLARE ret CHAR(255) DEFAULT ''; 
  DECLARE c CHAR(1);
  IF str IS NOT NULL THEN 
    SET len = CHAR_LENGTH( str ); 
    REPEAT 
      BEGIN 
        SET c = MID( str, i, 1 ); 
        IF c REGEXP '[[:alnum:]]' THEN 
          SET ret=CONCAT(ret,c); 
        END IF; 
        SET i = i + 1; 
      END; 
    UNTIL i > len END REPEAT; 
  ELSE
    SET ret='';
  END IF;
  RETURN ret; 
END | 
DELIMITER ; 
Copier après la connexion

En utilisant cette fonction, vous pouvez effectuer un filtrage de caractères comme suit :

select 'This works finally!', alphanum('This works finally!');
Copier après la connexion

Sortie :

+---------------------+---------------------------------+
| This works finally! | alphanum('This works finally!') |
+---------------------+---------------------------------+
| This works finally! | Thisworksfinally                |
+---------------------+---------------------------------+
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal