Напишите запрос, используя JOIN
и псевдонимы таблиц
UPDATE my_records r JOIN
units u
ON r.column_1 = u.column_1 AND r.column_2 = u.column_2
SET r.unit_id = u.id
WHERE r.id > 0 AND r.id <= 1000
ORDER BY my_records.id;
Теперь вы хотите выполнить преобразование.Вероятно, самый простой метод - это такая функция, как FIELD()
:
UPDATE my_records r JOIN
units u
ON r.column_1 = FIELD(u.column_1, 'Medical', 'Legal', 'Auto', 'Electrical', 'Software', 'Education') AND
r.column_2 = u.column_2
SET r.unit_id = u.id
WHERE r.id > 0 AND r.id <= 1000
ORDER BY my_records.id;
Примечание: вам может потребоваться настроить значение, возвращаемое FIELD()
, поскольку оно основано на 1.
ТоТем не менее, у вас есть проблема с вашей моделью данных, если вы храните такие значения без справочной таблицы.Вы действительно должны присоединиться к справочной таблице для устранения неоднозначности кодов.