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".

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%';

16
UPDATE tablename SET fieldname = CONCAT("test", fieldname) [WHERE ...]

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');

6

C'est simple

UPDATE YourTable SET YourColumn = CONCAT('prependedString', YourColumn);

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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.