想要在mysql workbench中查看IP地址为192.168.7.194的一条数据表的记录,于是使用select * from table_name查出来所有的记录中输入相关的IP地址,发现没有这条记录值,于是我想当然的认为这个值不存在,但是在添加过滤条件之后,也就是select * from table_name where ip_addr = '192.168.7.194',发现居然可以过滤出这条记录,这就奇怪了。在全表搜索的结果中,查询这条记录,发现没有,在条件查询的时候,却可以查出来这条记录?
一时间竟然不知所措,于是请教同事,最终这个问题才得到解决,原因是mysql workbench默认只输出1000条记录,如果表中的数据大于这个值,那么后续的输出将被隐藏。所以当我在那1000条结果集中查询这条记录的时候,发现确实没有,原因是输出的这1000个结果集并不是表里面的全部记录,实际上这个表里面有好几千条记录,而我要查的IP地址为192.168.7.194的记录刚好就在后面没有输出的记录中。如果我们用条件查询去看,那么这条记录就会被查出来,这就是问题的原因所在。
总结:mysql workbench在默认输出查询结果的时候,只会输出1000条记录,当我们表里的数据超过这个数值之后,需要增加必要的过滤条件,才能看到你想要的数据记录。