MySQL - 使用min函数或限制order-by查询

时间:2013-10-11 19:11:24

标签: mysql sql-order-by limit min

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

select min(price) from products

select price from products order by price limit 1

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

提前致谢。

2 个答案:

答案 0 :(得分:2)

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

如果您使用decimal这样的定点数据类型,则会19.95

您可以阅读in the doc

答案 1 :(得分:1)

min有更好的表现,根据奇怪的价值观 - 你应该阅读floating numbers are stored in memory/db,它们是“四舍五入”

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