GOOGLE ADS

lundi 18 avril 2022

Comment mettre à jour la table et afficher les nouvelles et anciennes valeurs dans les colonnes MySQL

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

Comment utiliseriez-vous .reduce() sur des arguments au lieu d'un tableau ou d'un objet spécifique ?

Je veux définir une fonction.flatten qui aplatit plusieurs éléments en un seul tableau. Je sais que ce qui suit n'est pas possible, mais...