我想知道MySQL是否能更好地比较具有重要精度的数字或者在比较之前对它们进行舍入,因为他们知道比较精度不如比较数字精度重要。
前:
SELECT 0.123456789101112123456789101112 < 0.987654321012345987654321012345
OR
SELECT ROUND(0.123456789101112123456789101112,2) < ROUND(0.987654321012345987654321012345,2)
答案 0 :(得分:1)
使用ROUND()
的版本显然会出现性能损失。
首先,调用函数总是比不调用函数更昂贵。
其次,可能更重要的是,如果列上有索引,如果在对列进行比较之前对它进行比较,则无法使用它。
但是,获得正确的答案几乎总是比使用最有效的方法更重要。