2017-06-16 2 views
0

私はmysqlに暗号化された列を持っています。私はその中の部分文字列を置き換える必要があります。それは暗号化されていなかった場合msqlの暗号化されたフィールドの部分文字列を置換します。

その後、私は

UPDATE my_table 
SET my_field = REPLACE(my_field, 'olddata', 'newdata') 

を使用しているだろう、それは全体の列updationだった場合、私は

UPDATE my_table 
    SET my_field = AES_ENCRYPT('newdata' , 'KEY') 
    where AES_DECRYPT(my_field , 'KEY') = 'olddata' 

を使用するしかし、どのように私は一緒に上記のコードの両方を使用していますか? AES_ENCRYPTで置き換えますか?

答えて

1

あなたはする必要があると思います:

  • 暗号化を置き換える

    1. 解読
    2. 再びここ
    UPDATE my_table 
        SET my_field = AES_ENCRYPT(REPLACE(AES_DECRYPT(my_field , 'KEY'), 'olddata', 'new data'), 'KEY') 
    WHERE AES_DECRYPT(my_field , 'KEY') LIKE '%olddata%' 
    

    dbfiddleデモ

    です
  • 関連する問題