UPDATE tecdoc_cross, insert_parts_test
SET tecdoc_cross.cross_num = IF(tecdoc_cross.cross_num = 0 ,
MAX(tecdoc_cross.cross_num) + 1 ,
tecdoc_cross.cross_num)
WHERE tecdoc_cross.art = insert_parts_test.art
OR tecdoc_cross.art = insert_parts_test.art_cross
Вообщем не работает только из-за MAX(tecdoc_cross.cross_num) + 1
Помогите пожалуйста найти решение.
tecdoc_cross имеет около 5 млн. строк
insert_parts_test имеет около 38 млн строк.
Попробуйте что-нибудь типа
UPDATE tecdoc_cross tc,
insert_parts_test ipt,
( SELECT @tmp := MAX(cross_num)
FROM tecdoc_cross) var
SET tc.cross_num = (@tmp := @tmp + 1)
WHERE tc.cross_num = 0
AND tc.art IN (ipt.art, ipt.art_cross)
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости