也是很偶然间遇到的一个问题.在进行mysql查询时,传的参数类型要求为varchar,然后传了个int类型的0,结果竟然...查出来了数据...
再经过一些测试数据之后,也是明白了,查询时的问题所在.下面是一个示例.
首先是准备测试数据
然后查询userid = 0的时候,会去匹配开头不为数字 和 开头数字为0,00,000等,后面跟着的不为数字的数据.
然后查询参数为其他数字,例如2的时候,会去匹配 开头数字为2 ,02,002,0002等的数据
至于其他的查询方式,如int类型,传varchar类型的""也是会有类似现象.
要求的参数类型和传的类型不匹配时,会出现这种比较特殊的情况