UPDATE box_draw_record SET box_price = ( SELECT COALESCE ( price, 0 ) FROM box WHERE id = box_draw_record.box_id ) WHERE box_price = 0;

报错可能是因为子查询返回了多个结果,而 UPDATE 只能更新单个值。可以将子查询改为 JOIN,如下所示:

UPDATE box_draw_record JOIN box ON box.id = box_draw_record.box_id SET box_draw_record.box_price = COALESCE(box.price, 0) WHERE box_draw_record.box_price = 0;

SQL 更新语句报错:子查询返回多个结果的解决方案

原文地址: https://www.cveoy.top/t/topic/nH04 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录