看了以下报错的SQL,写入到一个log文件中,这个SQL足足有1.8G

QQ图片20230326214154.png


这种情况,已经无语了,因为in子查询拼接了两万多个值,并且还构造了or,因为超过1000会报错,所以900个值拼一个Or实现。

但是,语句实在太大。


最后,找到原因,就有办法解决了


1、创建临时表,将in要用到的全部写入临时表

2、将In后面的拼接值,直接改为查询


我选择了第二种方式,因为我有条件改为SQL语句,如果在跨库等无条件的时候,可以构造临时表的方式来处理。