Je dois mettre à jour une partie d'une chaîne (remplacer Away to Alone) et afficher l'ancienne et la nouvelle valeur dans un tableau. J'essaie le code suivant sans succès. Quelqu'un peut-il expliquer comment obtenir le résultat attendu? je suis sur mysql 5.7
SELECT name AS old_music
FROM musics
WHERE name LIKE '%Away'
ON DUPLICATE KEY
UPDATE old_music REPLACE(name, 'Away', 'Alone')
WHERE name LIKE '%Away';
Résultat attendu:
------------------------------------------------------
old_music | new_music
------------------------------------------------------
Walking Away | Walking Alone
------------------------------------------------------
Solution du problème
Vous essayez de faire 2 choses différentes en même temps. Le script suivant pourrait vous inspirer.
create table musics( name VARCHAR (100));
insert into musics values ('walking alone');
set @oldword = 'alone';
set @newword = 'away';
select
name oldName
from musics
where name like
concat('%',@oldword,'%');
update musics
set name =
replace(
name,
@oldword,
@newword);
select name newName from musics;
ancienNom |
---|
marcher seul |
Aucun commentaire:
Enregistrer un commentaire