查看以下三条sql
1. SELECT * FROM `order_goods` WHERE `id` IN ('') #int数据类型
2. SELECT * FROM `order_goods` WHERE `goods_id` IN ('') #int数据类型
3. SELECT * FROM `order_goods` WHERE `sku` IN ('') #varchar数据类型
第一条sql无数据。而第二条sql会查询出goods_id等于0的记录。第三条sql会正常匹配到为空字符的记录
所以我们在使用空字符作为in条件时,如果数据类型为数字则需要注意值是否存在0,不然也会查出来