Здесь есть несколько вещей, на которые нужно обратить внимание ...
Да, VARBINARY - это соответствующий тип данных, однако AES_ENCRYPT - это блок на основе блоков, который дополнит ваш открытый текст необходимымдлина, поэтому ваш зашифрованный текст, вероятно, будет длиннее, чем оригинал.Документация дает это для вычисления правильного размера столбца:
16 * (усечение (string_length / 16) + 1)
Вы должны проверитьчто столбец все еще будет достаточно длинным, чтобы содержать любое значение, которое вы хотите сохранить.
Во-вторых, поскольку вы уже добавляете новые записи в зашифрованном виде, вам необходимо убедиться, что ваша инструкция по обновлению ограничена только теми записями, которые все еще находятся в незашифрованном виде.
После того, как вы взяли эти записиПринимая во внимание (и принимая во внимание некоторый идентификатор или созданный столбец), ваш оператор UPDATE будет выглядеть примерно так
UPDATE `yr_table` SET `col1` = AES_ENCRYPT(`col1`,'sadhjksauejs'),
`col2` = AES_ENCRYPT(`col2`,'sadhjksauejs')
WHERE `id` > whatever;
(т. е. мало чем отличается от предложения @Sadikhasan)