Comment ajouter une chaîne à une valeur de colonne dans MySQL?

123

J'ai besoin d'une instruction de mise à jour SQL pour mettre à jour un champ particulier de toutes les lignes avec une chaîne "test" à ajouter devant la valeur existante.

Par exemple, si la valeur existante est "try", elle doit devenir "testtry".

santanu
la source

Réponses:

261

Vous pouvez utiliser la fonction CONCAT pour ce faire:

UPDATE tbl SET col=CONCAT('test',col);

Si vous voulez être plus intelligent et ne mettre à jour que les colonnes qui n'ont pas encore de test en tête, essayez

UPDATE tbl SET col=CONCAT('test',col)
WHERE col NOT LIKE 'test%';
Paul Dixon
la source
16
UPDATE tablename SET fieldname = CONCAT("test", fieldname) [WHERE ...]
Ferdinand Beyer
la source
mettre à jour TICKET définir status_details = CONCAT (status _details, 'abc') où ticket_id = 75108; ERREUR 1583 (42000): paramètres incorrects dans l'appel à la fonction native 'CONCAT'
nirmesh khandelwal
9

De nombreuses fonctions de mise à jour de chaînes dans MySQL semblent fonctionner comme ceci: si un argument est null, alors la concaténation ou d'autres fonctions sont nullégalement renvoyées. Donc, pour mettre à jour un champ avecnull valeur, définissez-le d'abord sur une valeur non nulle, telle que''

Par exemple:

update table set field='' where field is null;
update table set field=concat(field,' append');
bvidinli
la source
6

C'est simple

UPDATE YourTable SET YourColumn = CONCAT('prependedString', YourColumn);
soulmerge
la source
Corrigez jusqu'à la clause WHERE, où vous concattez uniquement test aux colonnes commençant déjà par test. Donc: foo -> foo footest -> footest testfoo -> testtestfoo
Jukka Dahlbom
0
  • UPDATE nom_table SET Colonne1 = CONCAT ('newtring', nom_table.Colonne1) où 1
  • UPDATE nom_table SET Colonne1 = CONCAT ('newtring', nom_table.Colonne2) où 1
  • UPDATE nom_table SET Colonne1 = CONCAT ('newtring', table_name.Column2, 'newtring2') où 1

Nous pouvons concater la même colonne ou également une autre colonne du tableau.

utilisateur3419778
la source