2017-10-29 44 views
0

我试图用另一个字符替换字段retro_game_id中的值的第12个字符。该值是一个字符串,最后一个字符是'0'。当同一个表id中另一个字段的另一个字符串值的最后一个字符为'2'时,我需要将'0'替换为'2'。第一个字段的值的例子是'BAL200809230'。在其它字段中的字符串的一个例子是“2008/09/23/tbamlb-balmlb-2”如何用另一个字符替换另一个字符的最后一个字符或另一个字段字符串值

因此,使用上述作为一个例子,我需要改变“BAL200809230”到retro_game_id字段的“BAL200809232”只有当id字段的相应值在'2008/09/23/tbamlb-balmlb-2'末尾有'2'时

我试过以下代码,使用以下链接指导我,但是不得要领:Replace last two characters in column

link 2

MySQL string replace

SELECT `retro_game_id` FROM atbats_pitches_python_new 
SET `retro_game_id`= REPLACE(RIGHT(`retro_game_id`,1),'0','2') 
WHERE RIGHT(`id`, 1) ='2 

有人可以请帮助正确的代码来完成此?

谢谢。

回答

2

看起来你很迷惑选择和更新。如果你想改变atbats_pitches_python_new中的实际数据,那么你想要进行更新。执行retro_game_id场的条件更新时,其对应的id2结束:

UPDATE atbats_pitches_python_new 
SET retro_game_id = CONCAT(LEFT(retro_game_id, CHAR_LENGTH(retro_game_id) - 1), '2') 
WHERE 
    RIGHT(id, 1) = '2'; 

这里的关键是要采取的retro_game_id一个子包括除了最后一个所有字符。然后,将这个子字符串连接到2

+0

谢谢蒂姆,工作很棒!我现在看到它 - 将前11个字符作为子字符串并将其附加到新的最后(第12个)字符'2'。 – LeeZee

+0

我会用'LEFT(col,length)'而不是'SUBSTRING(col,1,length)'。 –

+0

@PaulSpiegel好主意,但我想你的意思是说''LEFT(col,length - 1)' –

相关问题