2010-11-17 51 views
2

我有一個文章表,我需要一年添加至名MySQL的添加文本字段

之前

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) 

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) 

該規則將增加括號前一年。如果沒有括號,最後加上它。 它不能被計數詞,因爲計數並不總是相同的(N°7在這種特殊情況下)

回答

2

這應該得到你想要什麼,如果你正在尋找注入日期:

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

N,Nice trick,+1 – zerkms 2010-11-17 03:43:41

+0

@zerkms Thanks。 – fncomp 2010-11-17 03:45:59

+0

如此優雅。非常好! – 2010-11-17 04:48:39

0

試試這個:

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

我只得到一年的結果... – 2010-11-17 04:49:30

+0

抱歉也發生在我身上,我沒有看到結果與我的數據,讓我看看它 – 2010-11-17 05:50:07