So, would the following 5 queries do what you need?
UPDATE cookers SET PRICE=((WEIGHT * $factorPrice['01']) + ($iAuxilaryCosts + (RINGQTY * 8))) * 2, FACTORPRICE=$factorPrice['01'] WHERE SUBSTRING(SKU, S, 2) = '01';
UPDATE cookers SET PRICE=((WEIGHT * $factorPrice['05']) + ($iAuxilaryCosts + (RINGQTY * 8))) * 2, FACTORPRICE=$factorPrice['05'] WHERE SUBSTRING(SKU, S, 2) = '05';
UPDATE cookers SET PRICE=((WEIGHT * $factorPrice['18']) + ($iAuxilaryCosts + (RINGQTY * 8))) * 2, FACTORPRICE=$factorPrice['18'] WHERE SUBSTRING(SKU, S, 2) = '18';
UPDATE cookers SET PRICE=((WEIGHT * $factorPrice['28']) + ($iAuxilaryCosts + (RINGQTY * 8))) * 2, FACTORPRICE=$factorPrice['28'] WHERE SUBSTRING(SKU, S, 2) = '28';
UPDATE cookers SET PRICE=((WEIGHT * $factorPrice['66']) + ($iAuxilaryCosts + (RINGQTY * 8))) * 2, FACTORPRICE=$factorPrice['66'] WHERE SUBSTRING(SKU, S, 2) = '66';
... where S is the start location of the SKUID in the string, which will need to be derived using something like LOCATE if the model number is variable length.
Also, bear in mind, of course, that matching on a substring like this will not be able to take advantage of any indexes--each query will cause a table-scan (which is probably OK if you're dealing with a few thousand rows or less).