J'ai besoin de mettre à jour le nom du fichier (nomcol1)
S'il y a déjà des données, je dois les ajouter avec les valeurs 'a, b, c' Si c'est NULL, j'ai besoin d'ajouter les valeurs 'a, b, c'
Je sais qu'il existe un argument CONCAT, mais je ne sais pas quelle serait la syntaxe SQL.
update tablename set col1name = concat(ifnull(col1name, 'a,b,c'), 'a,b,c')
Est-ce que ce qui précède est correct?
Essayez cette requête:
update tablename set col1name = concat(ifnull(col1name,""), 'a,b,c');
Cela devrait le faire:
update tablename set
col1name = if(col1name is null, 'a,b,c', concat(col1name, 'a,b,c'));
Ou vous pourriez vous simplifier la vie en deux étapes:
update tablename set col1name = '' where col1name is null;
puis
update tablename set col1name = concat(col1name, 'a,b,c');
Vous pouvez utiliser les éléments suivants:
update yourtable
set yourcol = case when yourcol is null then 'a,b,c'
else concat(yourcol, ' a,b,c') end
Voir SQL Fiddle avec Demo
Échantillon de données:
CREATE TABLE yourtable(`yourcol` varchar(50));
INSERT INTO yourtable(`yourcol`)
VALUES ('sadsdh'),
(NULL);
Reviendra:
| YOURCOL |
----------------
| sadsdh a,b,c |
| a,b,c |
IFNULL (colonne, ''), enregistre toutes les instructions if, simplifie grandement le SQL!
MySQL 5.6 Configuration du schéma:
CREATE TABLE tablename
(`yourcol` varchar(50))
;
INSERT INTO tablename
(`yourcol`)
VALUES
('sadsdh'),
(NULL)
;
UPDATE tablename SET
yourcol = CONCAT( IFNULL(yourcol,' '), 'somevalue' )
;
select *
from tablename
| yourcol |
|-----------------|
| sadsdhsomevalue |
| somevalue |