0

我正在编写查询以查找最低价格的产品。这是我尝试的两个查询:

select min(price) from products

select price from products order by price limit 1

第一个返回19.950000762939453,第二个返回19.95,这是准确的值。所以我的问题是,这两个查询有什么区别?为什么第一个很奇怪?!哪个对这项任务有更好的表现?

提前致谢。

4

2 回答 2

2

您的数据类型 price可能是浮点数,根据定义不准确。

如果您使用定点数据类型decimal,它将是19.95.

您可以在文档中阅读它

于 2013-10-11T19:12:59.937 回答
1

min 根据奇怪的值具有更好的性能-您应该阅读浮点数是如何存储在 memory/db中的,它们是“四舍五入”的

如果您存储实际价格 - 使用DECIMAL类型,它将正常工作

于 2013-10-11T19:14:48.230 回答