J'ai une table avec les colonnes suivantes dans une base de données MySQL
[id, url]
Et les URL sont comme:
http://domain1.com/images/img1.jpg
Je souhaite mettre à jour toutes les URL vers un autre domaine
http://domain2.com/otherfolder/img1.jpg
conserver le nom du fichier tel quel.
Quelle est la requête que je dois exécuter?
Réponses:
la source
documents pertinents: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_replace
la source
WHERE
clause optimise la requête pour modifier uniquement les lignes avec certaines URL. Logiquement, le résultat sera le même, mais l'ajout deWHERE
rendra l'opération plus rapide.WHERE
assure également que de vous ne remplacer des parties de chaînes qui commencent avechttp://etc/etc/
oustring_to_be_replaced.
, par exemple, dans la réponse donnée,http://domain1.com/images/this/is/a/test
seraient affectés, maisfoobar/http://domain1.com/images/
ne le seraient pas.Essayez d'utiliser la fonction REMPLACER :
Notez qu'il est sensible à la casse.
la source
Vous avez besoin de la clause WHERE pour remplacer UNIQUEMENT les enregistrements qui respectent la condition de la clause WHERE (par opposition à tous les enregistrements). Vous utilisez le signe % pour indiquer une chaîne partielle: IE
signifie tous les enregistrements qui COMMENCENT avec
"...//domain1.com/images/"
et ont quelque chose APRÈS (c'est le%
pour ...)Un autre exemple:
ce qui signifie tous les enregistrements qui contiennent
"http://domain1.com/images/"
dans n'importe quelle partie de la chaîne ...
la source
Essaye ça...
la source
D'abord, je dois vérifier
SELECT * FROM
university
WHERE course_name LIKE '% & amp%'Ensuite, je dois mettre à jour
UPDATE university SET course_name = REPLACE (course_name, '& amp', '&') WHERE id = 1
Résultats: Engineering & Amp Technology => Engineering & Technology
la source