我正在尝试用另一个字符替换字段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
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
有人可以帮助您使用正确的代码来完成此任务吗?
谢谢。
答案 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
连接起来。