2017-10-29 102 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)' –

相關問題