2010-11-17 102 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