首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL语句只接受小于6位的id

SQL语句只接受小于6位的id
EN

Stack Overflow用户
提问于 2018-07-03 14:35:47
回答 1查看 667关注 0票数 0

我想弄明白为什么会发生这种事,但我在网上找不到任何东西。我有一张有23600种元素的药品(叫做美第曼托)。当我尝试使用IdMed列接受一个元素时,它只接受小于6位数的值。

示例1:

代码语言:javascript
复制
SELECT * FROM `Medicamento` WHERE IdMed=100 

示例2:

代码语言:javascript
复制
SELECT * FROM `Medicamento` WHERE IdMed=200703 

此时,我认为没有创建带有该Id的med,所以我执行了最后一个查询,这使我不知道错误在哪里:

代码语言:javascript
复制
SELECT * FROM `Medicamento` WHERE IdMed>200702 

结果:

如您所见,第一个元素是一个Id为200703的元素。我无法理解的是,为什么它使用Id为12700或100的元素,而不使用Id为6个数字的元素。我认为这可能是格式问题,但我没有发现任何有用的东西。

表的数据是从两个不同的.xlsx文件中提取的,这就是我考虑格式的原因。

警察:对不起,我的英语不好。我希望大家能理解这个问题。

编辑:表数据类型

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-03 14:49:37

简而言之,所发生的事情是,由于您使用的数据类型不准确,所以您的值正在丢失。float用于浮点数,理想情况下不应将其用作主键。您最好的选择是将其改为integer数据类型。从注释的外观来看,这可能是不可行的,您最好创建另一列并使用它作为主键。例如,在200703中,它可能以200703.0000012007002.99999的形式存储在数据库中,您正在搜索一个与数据库存储方式不完全匹配的值。

作为建议,您可能希望将当前的float列更改为double列,以保持小数点以上的更高精度。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51157236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档