mysql - SQL 语句只取 id 小于 6 位的 MYSQL
问题描述
我试图了解为什么会发生这种情况,但我在互联网上找不到任何东西。我有一张药物表(称为 Medicamento),其中包含 23600 个元素。当我尝试使用 IdMed 列获取元素时,它只获取少于 6 位的值。
示例 1:
SELECT * FROM `Medicamento` WHERE IdMed=100
示例 2:
SELECT * FROM `Medicamento` WHERE IdMed=200703
在这一点上,我认为没有创建具有该 ID 的 med,所以我做了最后一个查询,这让我不知道错误在哪里:
SELECT * FROM `Medicamento` WHERE IdMed>200702
如您所见,第一个元素是 ID 为 200703 的元素。我无法理解的是为什么它需要 ID 为 12700 或 100 的元素,但它不接受 ID 为 6 个数字的元素。我认为这可能是格式问题,但我没有发现任何帮助。
该表的数据取自 2 个不同的 .xlsx 文件,这就是我考虑格式的原因。
PD:对不起我的英语不好。我希望问题得到理解。
解决方案
简而言之,您的价值正在失去精度,因为您使用了不准确的数据类型。 float
用于浮点数,理想情况下通常不应用作主键。您最好的选择是将其更改为integer
数据类型。从评论的角度来看,这可能不可行,您最好创建另一列并将其用作主键。例如,可能发生的情况是,它可能以or200703
的形式存储在数据库中,并且您正在搜索与数据库存储它的方式不完全匹配的值。200703.000001
2007002.99999
作为建议,您可能希望将当前float
列更改为double
列,而不是在小数点后保留更多的精度。
推荐阅读
- django - 如何在 django rest 序列化程序自定义字段上应用排序
- c# - 将数据从平面文件加载到 Sql Server 表,并使用 SSIS 导出到 excel
- python - Django 在密码重置电子邮件中获取 SMTP 服务器 URL 作为 URL
- vba - 在 vba 中,我们如何将值从表单传递到模块
- java - 使用 Mockito 模拟异步 HTTP 调用
- python - 调整python(美汤)代码抓取多页
- macos - 将 NSImage 链接到存储在字典中的 URL
- sql - 复杂的日期连接:需要每个组的最近日期条目出现在另一个表的日期条目之前
- excel - Range类的PasteSpecial方法复制后失败
- python - 为什么像这样索引图片的ndarray会使图片变成绿色和蓝色?