使用MySQL查询选择最接近的数值

使用MySQL查询选择最接近的数值,第1张

使用MySQL查询选择最接近的数值

一种选择是遵循以下方式:

select   the_value,         abs(the_value - 14) as distance_from_testfrom     the_tableorder by distance_from_testlimit 1

要选择随机记录,可以将其添加

, rand()
orderby
子句中。这种方法的缺点是您不能从索引中得到任何好处,因为您必须对派生值进行排序
distance_from_test

如果您有索引

the_value
并且放宽了对平局时结果随机的要求,则可以执行一对有限范围查询,以选择紧接测试值上方的第一个值和紧接测试值下方的第一个值值并选择最接近测试值的值:

(select   the_valuefrom     the_tablewhere    the_value >= 14order by the_value asclimit 1)union(select   the_valuefrom     the_tablewhere    the_value < 14order by the_value desclimit 1)order by abs(the_value - 14)limit 1


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5113063.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存