【发布时间】:2021-09-27 22:59:57
【问题描述】:
我的表格包含以下值: 名称: 28.54617, 28.54917, 98.54617, 48.54217, 28.54217
如何在 where 子句中写入条件以获取所有匹配到小数点后两位的记录 所以这里的预期输出是: 28.54617,28.54917,28.54217
我想要与这个 where 子句匹配的所有行,如果我执行 'colName' = '28.54617',它只会返回 1 行,因为它会精确匹配浮点数,而不是我想要匹配最多 2 的所有行输入值的小数。在这种情况下,输入值为 28.54617。谢谢
【问题讨论】:
-
2 种方法:算术,
|lookup - colname[i]| <= 0.01。这将接近 OP 的目标。 文本执行|lookup - colname[i]| <= 0.02(过滤掉远处的)和文本(保留2位小数)比较。 -
数据必须截断,不能四舍五入? 28.54999和28.55000不在一个组里?
-
截断很好,应该只比较前两位小数,如果匹配应该是查询结果的一部分。
-
"所有匹配的记录" -- 匹配什么?匹配“28.54”?互相匹配?
标签: mysql sql floating-point decimal where-clause