У меня есть таблица клиентов, которые мне нужно обновить и заменить один столбец (varchar) идентификатором (целое число). Назовем первую таблицу клиентами и вторыми продуктами Итак, вместо того, чтобы иметь varchar (например, Product A), я хочу иметь идентификатор этого продукта (внешний ключ). Произведения находятся в другой таблице, которые имеют идентификатор и PRODUCTNAME:Самый быстрый способ сравнить и обновить строки milion
Я попытался это:
UPDATE customers
SET s_product = (SELECT id from products WHERE products.productName = customers.s_product)
Но это занимает looong время и мне нужен быстрый способ сделать это. Также я попытался установить индекс на customers.s_product (BTREE и FULLTEXT), но все же не улучшился.
мне нужен идентификатор, а не название продукта. Так должно быть 'SET t1.s_product = t2.id WHERE t1.s_product = t2.productName' – harunB10
Вы верны, обновили ответ :-) –
Запрос выполняется в течение часа. Нет улучшения скорости по сравнению с моим запросом. :( – harunB10