你的结果让人惊讶?难道不应该只返回1,就一行记录
用 GROUP BY 可以代替 distinct
你这应该是只执行了第一行的sql。第二行的where没选中一起执行吧..
执行了。主要原因条件字段是字符串,我这里传入的1是数字,不知道是不是这个影响了。
@那家伙真懒: 应该不是,如果使用工具是navicat的话。我试了是没问题的,如果你的工具不是。你把where package_size = '1' 加上个引号试试。因为根据返回结果来看,这个列不是int型
@Ctrl`: 将1改成字符串是没有这个问题,我的navicat版本比较高,我最近用的是15
@那家伙真懒: 嗯,那应该就是了。我的是11、mysql5.7,现在好多工具、类库都是版本越高,各种规范限制越严格
@那家伙真懒: 可以关注下navicat官网,实时了解最新版本的新特性;不过。突然想起来,也有可能是mysql版本问题的限制,这就要你查一下看看到底是哪个影响的了
MySQL默认字符串和数字对比时,优先把字符串转换为数字,如果无法转换,则截取前缀数字,以1x218ml为例转换成数字是1因为前缀只有1是数字,23xm转换成23因为前缀两个字符是数字,abc转换成0因为前缀没有数字,依此类推。请查看MySQL官网隐式类型转换其中有这个的描述
把1 加上双引号。以字符串去查询。