[Résolu] remplacer un mot réccurant

remplacer un mot réccurant [Résolu] - SQL/NoSQL - Programmation

Marsh Posté le 01-12-2009 à 16:36:20    

Bonsoir tout le monde, est il possible de faire une requête pour modifier un mot dans une base de données. Je m'explique, les tables sont remplies et sur 3000 enregistrements, il y'a peut etre 300 adresses a modifiées
l'erreur est : "Mercière" doit s'écrire "Mercières"
peut on faire une automatisation pour taitéer et modifier les données?


Message édité par Sataneo85 le 02-12-2009 à 14:17:37
Reply

Marsh Posté le 01-12-2009 à 16:36:20   

Reply

Marsh Posté le 01-12-2009 à 16:50:35    

Quel est le SGBD que tu utilises ?


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 02-12-2009 à 10:34:26    

Ah oui pardon, c'est pour du Web, je suis sur phpmyadmin

Reply

Marsh Posté le 02-12-2009 à 13:08:21    

A ce moment là, il suffit d'utiliser une requête SQL :D  
 
UPDATE matable SET monchamp = 'Mercières' WHERE monchamp = 'Mercière';
 
Traduction :
Modifie la table matable, affecte la valeur 'Mercières' à monchamp pour tous les enregistrements qui vérifient monchamp = 'Mercière'

Reply

Marsh Posté le 02-12-2009 à 13:54:15    

Sataneo85 a écrit :

Ah oui pardon, c'est pour du Web, je suis sur phpmyadmin


 
Mysql, Postgresql, Oracle, SQL Serveur?
 
Une solution en Mysql est la suivante:
 
Soit la table 'maTable' contenant les champs uid (clé primaire) et adresse.
 
SELECT CONCAT('UPDATE maTable SET adresse = \'', adresse, '\' WHERE uid=', uid)  
FROM maTable
WHERE adresse  LIKE '%Mercières%';

 
Tu copies le résultat dans ton éditeur préféré, tu remplaces Mercières par Mercière et tu exécutes le script


Message édité par Anonymouse le 02-12-2009 à 14:02:41
Reply

Marsh Posté le 02-12-2009 à 13:56:25    

Ca va un peu plus loin, je pense que ça doit être une chaîne contenant "Mercieres" et pas juste le mot :o
 
Et ça, ça demande d'utiliser une fonction dépendante du SGBD

Reply

Marsh Posté le 02-12-2009 à 14:03:33    

Citation :

REPLACE(str,from_str,to_str)

 

Retourne une chaîne de caractères str dont toutes les occurrences de la chaîne from_str sont remplacées par la chaîne to_str :

 

mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
        -> 'WwWwWw.mysql.com'
Cette fonction gère les caractères multi-octets.

 

http://dev.mysql.com/doc/refman/5. [...] tions.html
(phpmyadmin > c'est forcément mysql )
UPDATE champ SET champ = replace(champ,'Mercière','Mercières');

 

( ça va te générer des ligens avec Mercièress je te laisse le soin de corriger )


Message édité par flo850 le 02-12-2009 à 14:05:04

---------------

Reply

Marsh Posté le 02-12-2009 à 14:17:22    

Merci pour toutes ces infos, ca fait plaisir!
J'ai tout pigé, merci d'avoir aussi bien détaillé les requêtes ;-)
 
J'avais une solution mais c'était pas franchement tres correct de faire comme ça, je voulais exporter la base, la passer dans un éditeur en "rechercher et remplacer" et la réimporter ... Autant commencer a apprendre les fonctions SQL c'est quand même plus utile ;)
 
Merci à tous

Reply

Marsh Posté le 02-12-2009 à 14:29:50    

je t'ai laissé un peu de taf, pense au lignes avec un double ss qui vont apparaitre


---------------

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed