1. select * from table where price=28.8
是有可能select不到这条记录的,因为10进制和2进制之间的误差,这个28.8有可能是28.7999999
到目前为止我想到是有两个方案:
一个是这样select(其实在对精准要求比较高的情况下,这样可能是有问题)
select * from table where price>28.7 and price<28.9
但是
以上方法有缺陷,第一个方法大多用户估计行不通,精度不一样。不太好控制
第二个方法设计确实比较有技巧,但是无法在MySQL中简单的进行排序。
而我的需求即是又要能排序,又要可以使用where result=2.52
我想了第三种方法,就是再增加一个字段
执行alter table test add cresult varchar(32) not null;即可
这样当我要执行排序操作时
select * from test order by result desc;
执行开头那个例子时
select * from test where cresult="2.52"
二个字段分工不同。