Вы можете рассчитать индекс на лету с помощью этого запроса:
SELECT First_Date, TIMESTAMPDIFF(MONTH, earliest_date, First_Date) AS Index
FROM MI_APR
, (SELECT First_Date AS earliest_date FROM MI_APR ORDER BY First_Date ASC LIMIT 1) fancy_alias;
Если результат вас порадует, вы можете преобразовать его в обновление. Однако я советую вам не хранить данные, которые можно легко вычислить на лету!
UPDATE MI_APR
, (SELECT First_Date AS earliest_date FROM MI_APR ORDER BY First_Date ASC LIMIT 1) fancy_alias
SET `Index` = TIMESTAMPDIFF(MONTH, earliest_date, First_Date);
Относительно вашего комментария "Также я хотел бы, чтобы таблица была отсортирована, а затем обновлена".
В таблице нет порядка, на который можно положиться. Если вы хотите, чтобы результат сортировки был выбран, используйте предложение ORDER BY
.