2010-11-17 6 views
2

J'ai une table d'articles et je dois ajouter l'année au nomMySQL ajouter du texte à un champ

Avant

Bicicleta rodado 20", freestyle Mirraco Blend 
Bicicleta rodado 20", freestyle Mirraco Blend (azul) 
Bicicleta rodado 20", freestyle Mirraco Blend (negro) 
Bicicleta rodado 20", freestyle Mirraco Blink 
Bicicleta rodado 20", freestyle Mirraco Blink (blanco con azul) 
Bicicleta rodado 20", freestyle Mirraco Blink (marron) 
Bicicleta rodado 20", freestyle Mirraco N°7 
Bicicleta rodado 20", freestyle Mirraco N°7 (negro con blanco) 
Bicicleta rodado 20", freestyle Mirraco N°7 (purpura con blanco) 

Après

Bicicleta rodado 20", freestyle Mirraco Blend 2010 
Bicicleta rodado 20", freestyle Mirraco Blend 2010 (azul) 
Bicicleta rodado 20", freestyle Mirraco Blend 2010 (negro) 
Bicicleta rodado 20", freestyle Mirraco Blink 2010 
Bicicleta rodado 20", freestyle Mirraco Blink 2010 (blanco con azul) 
Bicicleta rodado 20", freestyle Mirraco Blink 2010 (marron) 
Bicicleta rodado 20", freestyle Mirraco N° 7 2010 
Bicicleta rodado 20", freestyle Mirraco N° 7 2010 (negro con blanco) 
Bicicleta rodado 20", freestyle Mirraco N° 7 2010 (purpura con blanco) 

La règle serait d'ajouter l'année avant la parenthèse. Et s'il n'y a pas de parenthèse, ajoutez-le à la fin. On ne peut pas compter mot parce que le compte est pas toujours le même (N ° 7 dans ce cas particulier)

Répondre

2

Cela devrait obtenir ce que vous voulez si vous cherchez à injecter la date:

SELECT 
    CASE 
    WHEN (INSTR(your_field, '(') > 0) 
     THEN REPLACE(your_field, '(', '2010 (') 
    ELSE CONCAT (your_field, ' 2010') 
    END 
FROM your_table; 
+0

N, trick Nice, +1 – zerkms

+0

@zerkms Merci. – fncomp

+0

Si élégant. Très agréable! –

0

Essayez ceci:

SELECT 
case instr(accountcode,'-') when instr(accountcode,'-') = 0 then 
concat(accountcode, ' 2010') else 
concat(left(accountcode,instr(accountcode,'-')-1), concat(' 2010',right(accountcode,instr(accountcode,'-')-2))) 
end 
FROM account a; 
+0

Je reçois seulement l'année comme résultat ... –

+0

désolé cela m'arrive à moi aussi, je n'ai pas vu le résultat avec mes données, laissez-moi vérifier –

Questions connexes