2017-10-29 3 views
0

フィールドの値の12番目の文字を別の文字に置き換えようとしています。値は文字列で、最後の文字は '0'です。同じテーブル内の別のフィールドの別の文字列値の最後の文字がidの場合、 '0'を '2'に置き換える必要があります。最初のフィールドの値の例は 'BAL200809230'です。他のフィールドの文字列の例は '2008/09/23/tbamlb-balmlb-2'部分文字列の最後の文字を、別のフィールド文字列値に応じて別の文字に置き換える方法

ですので、上記の例を使用して、retro_game_idフィールドの 'BAL200809232'に変更する必要がありますidフィールドの対応する値が '2008/09/23/tbamlb-balmlb-2'のように末尾に「2」を持つ場合のみ、

次のコードを試してみてください。無駄ません:Replace last two characters in column

link 2

MySQL string replace

誰かがこれを達成するための正しいコードを支援してくれますか?

ありがとうございます。

答えて

2

選択と更新を混乱させるようです。 atbats_pitches_python_newの実際のデータを変更する場合は、更新を行いたいと考えています。それに対応するidフィールドが2に終了した場合retro_game_idフィールドの条件付きの更新を行います。

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

Timさん、ありがとう!私は今それを見る - 最初の11文字を部分文字列として取り、それを新しい最後の(12番目の)文字「2」に付ける。 – LeeZee

+0

私は 'SUBSTRING(col、1、length)'の代わりに 'LEFT(col、length)'を使います。 –

+0

@PaulSpiegelいい考えですが、私はあなたが 'LEFT(col、length - 1)'と言うことを意味していると思います –

関連する問題