2 votes

Remplacement de sous-chaînes en SQL

J'utilise HeidiSql et j'ai une base de données avec ~1000 URL. Exemple :

index.php?option=com_flexicontent&view=items&cid=283&id=33
index.php?option=com_flexicontent&view=items&cid=421&id=4411
index.php?option=com_flexicontent&view=items&cid=415&id=4375

Ce que je dois faire, c'est remplacer le cid= avec des valeurs de 408 à 477 à cid=403

J'ai créé un script comme suit :

UPDATE jos_menu
SET link = REPLACE(link, "cid=411", 'cid=403')

Mais comment modifier le cid= les valeurs 408 à 477, sans faire 70 REPLACE s ?

1voto

Fred Points 4076

Je ne peux pas tester cela, mais essayez ceci

UPDATE jos_menu
SET link = REPLACE(link, 'cid=' + SUBSTRING(@str, CHARINDEX( 'cid=', @str) + 4, 3), 'cid=403')
WHERE Cast(SUBSTRING(@str, CHARINDEX( 'cid=', @str) + 4, 3) as Int) > 407 And Cast(SUBSTRING(@str, CHARINDEX( 'cid=', @str) + 4, 3) as Int) < 478

0voto

bobzrz8 Points 129

Faites une sauvegarde de la table ou de la base de données dans phpmyadmin et enregistrez-la en tant que fichier .cvs. Utilisez excel pour effectuer les remplacements. Puis sauvegardez-le à nouveau en tant que fichier .cvs et importez-le à nouveau dans la base de données.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X