示例:
select * from x_table where a in (1,2,3) and b in (4,8)
上面这种查询方法,如果可以通过a和b唯一确定一条数据,但a和b列可以有相同值时,会造成查询数据不准确。
验证:
假设有以下数据(手机号为假数据),现在要查询stu_phone和recruit_source_id字段值分别为18700009999和3,以及18099990000和2的两条数据,可能会查询出多余的数据
查询语句和结果如下图:
由于两个in条件中的值会形成笛卡尔积,产生了我们并不需要的条件组合。
解决: