如何使用另一个字符串值替换另一个字符的子字符串的最后一个字符

时间:2017-10-29 01:00:20

标签: mysql replace

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

因此,使用上面的示例,我需要将retro_game_id字段的'BAL200809230'更改为'BAL200809232'仅当id字段的对应值为'2'时结束于'2008/09/23 / tbamlb-balmlb-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

有人可以帮助您使用正确的代码来完成此任务吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

看起来你很困惑选择和更新。如果您想要更改atbats_pitches_python_new中的实际数据,那么您希望进行更新。当retro_game_id字段在id结尾时,对2字段进行有条件更新:

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连接起来。