MySQL将字段添加到字段中

时间:2010-11-17 02:48:30

标签: mysql replace

我有一个文章表,我需要将年份添加到名称

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)

规则是在括号前添加年份。如果没有括号,请在最后添加。 它不能统计字数,因为计数并不总是相同的(在这种特殊情况下为7)

2 个答案:

答案 0 :(得分:2)

如果你想注射日期,这应该得到你想要的东西:

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

答案 1 :(得分: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;