Supprimer des caractères spéciaux à partir d'un champ de base de données
J'ai une base de données avec plusieurs milliers de dossiers, et j'ai besoin de démonter l'un des champs pour s'assurer qu'il ne contient certains caractères (Alphanumériques, espaces et apostrophes). Ce SQL puis-je utiliser pour supprimer toutes les autres caractères (tels que des barres obliques, etc) à partir de ce champ dans la base de données entière?
OriginalL'auteur MarathonStudios | 2011-05-20
Vous devez vous connecter pour publier un commentaire.
C'est un bon endroit pour commencer.
OriginalL'auteur Vinnie
La fonction de remplacement() est le premier choix. Cependant, les Caractères Spéciaux peuvent parfois être difficiles à écrire dans une console. Pour ceux que vous pouvez combiner les Remplacer avec le Char() fonction.
par exemple, la suppression €
Vous pouvez trouver toutes les Valeurs Ascii ici
Idéalement, vous pouvez faire une regex pour trouver tous les caractères spéciaux, mais apparemment ce n'est pas possible avec MySQL.
Au-delà de cela, vous auriez besoin de le lancer à travers votre langage de script favori.
OriginalL'auteur DonaldSowell
Cela peut également être utile.
D'abord, vous devez connaître le jeu de caractères de la base de données et /ou de la table. Par exemple, supposons que vous avez un environnement UTF-8 et que vous voulez bande /supprimer des symboles comme encerclé enregistré symboles, encerclé symbole de droit d'auteur, et le symbole de marque déposée à partir d'un champ de recherche internet via bing ou yahoo ou google pour pour le code hexadécimal des valeurs de ces symboles dans le système UTF-8:
Alors votre frotter sélectionnez sql pour le champ f1 à partir de la table t1, à l'aide de l'hex /unhex installation en conjonction avec la fonction remplacer, sera probablement ressembler à ceci:
SELECT
cast(unhex(replace(replace(replace(hex(f1),'C2A9',''),'C2AE',''),'E284A2','')) AS char) AS cleanf1
FROM t1
;
Remarque ci-dessus, le champ d'origine pour être nettoyée /nettoyé est la f1, le tableau est de t1 et de l'en-tête de sortie est cleanf1. Le "char" coulée est nécessaire parce que, w/o, mysql 5.5.8 sur lequel j'ai testé est de retour blob. Espérons que cela aide
OriginalL'auteur Adams Biyi
D'élaborer sur Vinnies réponse... vous pouvez utiliser ce qui suit (la note de l'échappement dans les deux dernières déclarations...
OriginalL'auteur
Ont un coup d'oeil à LIB_MYSQLUDF_PREG qui doit être compilé dans le serveur MySQL, mais a avancé l'expression régulière des installations telles que
preg_replace
qui les aideront dans votre tâche.OriginalL'auteur Rasika
J'ai créé une fonction simple pour ce
Exemple d'utilisation:
OriginalL'auteur Juned Ansari