MySQL: обновите полную таблицу, вставив хэш MD5, для каждой строки - конкретную

Я добавил столбец в существующую таблицу. Теперь мне нужно обновить tablecontent, добавив хэш MD5 в этот новый столбец на основе содержимого существующего столбца.

Точнее:

id | name | date-of-birth | hash
1  | test | 12.12.12      | NULL

Есть более 1 миллиона строк, где hash = NULL. Теперь мне нужно обновить хеш с помощью строки MD5, которая основывается на соответствующем столбце, например. имя: hash = MD5 (тест)

Я знаю, как это сделать для одной строки. Но как это сделать для всех строк в одном заявлении SQL?

Ответы

Ответ 1

Попробуйте следующее:

UPDATE yourtable
SET hash = MD5(name)
WHERE hash IS NULL

Обратите внимание, что тест hash IS NULL, а не hash = NULL, как вы писали в своем вопросе.

Ответ 2

Не нужно писать дополнительный запрос для обновления.

  • Просто зайдите в дизайн таблицы
  • создать новый столбец
  • выберите новый созданный столбец, ниже вы получите свойства
  • Найти для вычисленной спецификации столбца
  • В приведенном выше выборе вы найдете раздел формулы write HashBytes ([Algo], [ColumnName])

он автоматически создаст хэш-значение для уже существующих строк.

Проверьте прикрепленное изображение для получения дополнительных пояснений