MySql 多字段联合IN 查询结果不正确

问题遇到的现象和发生背景

MySql中多个字段联合IN查询出的结果误差,

问题相关代码,请勿粘贴截图

select * from table where(id1,id2)in (('1','16487066160712288'),('2','16487066160712286'));

运行结果及报错内容

执行SQL得到的结果集ID2 为16487066160712287,16487066160712286 的数据

我的解答思路和尝试过的方法

出现这种问题,我首先想到的时ID2是bigint类型,而传入的参数是String类型,类型的转换是不是存在问题

基本可以确认时隐式类型转换的问题,但是问题是隐式类型转换在什么场景下才会促发,后续整理隐式类型转换场景


select * from table where id1 in (1,2) and id2 in('16487066160712288','16487066160712286');