Error Code 1241错误咨询:删除invoices表数据失败排查
Error Code 1241 错误原因及解决办法
错误原因
Error Code 1241的核心问题是操作数不匹配:你用=来匹配client_id(单个字段值),但子查询里写了select *,这会返回clients表中符合条件的整行数据(包含多个字段),数据库没法把一整行数据和单个字段值做相等比较,所以触发了这个错误。
修正方案
把子查询里的select *改成只查询client_id字段,保证子查询返回单一列的值:
delete from invoices where client_id = ( select client_id from clients where name = 'Myworks' );
如果name = 'Myworks'可能匹配多个客户(比如clients表里有同名的客户),建议用IN替换=,防止子查询返回多行数据时再次报错:
delete from invoices where client_id IN ( select client_id from clients where name = 'Myworks' );
内容的提问来源于stack exchange,提问作者Seevy
相关产品推荐
相关产品推荐

