BTW, this is the query I use to rectify the problem on a regular basis.
UPDATE ****_postmeta
AS pm2
inner join ****_postmeta
AS pm1 on pm1.post_id = pm2.post_id
inner join ****_postmeta
AS pm3 on pm1.post_id = pm3.post_id
SET pm2.meta_value = 'outofstock'
WHERE pm1.meta_key LIKE 'stock' AND pm1.meta_value LIKE '0'
AND pm2.meta_key LIKE 'stock_status' AND pm2.meta_value LIKE 'instock'
AND pm3.meta_key LIKE '_backorders' AND pm3.meta_value LIKE 'no'