帖子
帖子
用户
博客
课程
显示全部楼层
14
帖子
0
勋章
630
Y币

[FAQ] 为什么 query.whereEqual查询不到以0开头的数据?

[复制链接]
发表于 2016-4-27 22:50:14
query.whereEqual({
                                    qid: ret.qid,
                                    column: 'number',
                                    value: '0123456'
                                });

就是这里的value的值不能以0开头。
我开始测试是明明就有number为0123456的这条数据就是查不到。搞了半天也没找到原因。
后来添加了一条number为123456的数据,发现查询0123456的时候居然查到了123456这条数据。
也就是说query.whereEqual查询以0开头的数据会把0去掉
我的number类型是string类型


29
帖子
0
勋章
1366
Y币
你好,我这边是可以查到的。但我新创建的表不是number表。是不是网络原因呢?
14
帖子
0
勋章
630
Y币
BUG测试 发表于 2016-4-28 15:33
你好,我这边是可以查到的。但我新创建的表不是number表。是不是网络原因呢? ...

number不是表,number是表里的一个字段。用query.whereEqual来查询表里面number字段为0123456的数据,会查询不到,但是会查到number字段为123456的数据。如果查询000012300,就会查到12300的数据。就是用query.whereEqual查询的时候会自动把最前面的全部0去掉。
29
帖子
0
勋章
1366
Y币
你好,确定有此问题的,经过技术这边反馈,因为此问题涉及到数据类型转换等问题,故建议不要用0来区分数据,或使用like或者包含的方式实现。
4
帖子
0
勋章
95
Y币
我也是,遇到0开头的查询就出问题了,字段类型也是string,试着把查询的值强制加个引号都没用,期待解决这个类型转换的问题
您需要登录后才可以回帖 登录

本版积分规则