Salut à tous les codeurs !
J'ai un gros soucis au niveau d'une base MySQL transactionnelle qui contient énormément de données.
Pour faire court, un passage d'une appli d'une base Oracle à une base MySQL a été opéré mais pas assez efficacement : le code des requêtes était trop près du SQL Oracle ; ce qu'il se passe aujourd'hui c'est qu'on constate que dès qu'un champs texte est ajouté en base, un doublement d'apostrophe est opéré (si je rentre l'homme, en base j'obtiens l''homme). On a donc fait les changements qui s'imposaient, seulement on a une tonne de données avec énormément d'apostrophes (car dès que les données étaient réutilisées, ça doublait et redoublait encore les apostrophes) ; je recherche donc une requête MySQL capable de faire le boulot.
Il m'est donc impossible de savoir le nombre d'apostrophe que pourrait contenir un champs, je sais juste qu'ils se suivent forcément. J'aurais donc voulu passer par une expression régulière, mais j'ai l'impression que ce n'est pas le truc de MySQL. Bref en gros je cherche à faire un truc du genre :
Où function serait un peu l'équivalent d'un "replace" récursif : toute apostrophe suivi par une autre est supprimée. Ce n'est qu'un exemple bien sûr, j'imagine que la syntaxe serait forcément différente voire impossible de cette manière !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 UPDATE table SET champs = FUNCTION(table.champs, "''", "'") WHERE champs LIKE "%''%";
J'ai malheureusement pas la possibilité de le faire via un script du style en PHP (ça aurait été très simple pour le coup), à cause de problème de droits sur le serveur... Je n'ai donc qu'accès à la base MySQL via PhpMyAdmin... et j'ai pas envie de tout me taper à la main !!!
Quelqu'un aurait une solution à me proposer ?
Je vous remercie pour votre aide ! @ bientôt !
Partager