MySQL子查询里不能使用 limit 但是可以在子查询里的子查询里使用limit
SELECT id from (SELECT id from book ORDER BY RAND(50) LIMIT 40) t 不可以
UPDATE book set free=0 where id in(SELECT id from (SELECT id from book ORDER BY RAND(50) LIMIT 40) t) 可以