我正在建设一个网站,人们可以根据自己的体重和身高获取一些信息。
如何构建一个查询,以便给我一个最接近用户输入的两个特定值的行?
我在stackoverflow上找到了这篇文章,对我很有帮助。 我正在尝试完成与那篇文章类似的事情,只是使用2个值而不是1个。
我在stackoverflow上找到了这篇文章,对我很有帮助。 我正在尝试完成与那篇文章类似的事情,只是使用2个值而不是1个。
select top 1 *
from tbl
order by ABS(weight-@weight) + ABS(height-@height)
相等
重要。同时,将两边都平方,这样5千克和5厘米的偏差会被认为比10厘米和0千克更加“接近”。select top 1 *
from tbl
order by ABS(weight-@weight)^2 + (ABS(height-@height)*100)^2
那么这两者的平均差异呢?我建议将身高差异赋予更高的权重,因为6英寸的差异比6磅的差异更加明显。例如:
SELECT * FROM table
ORDER BY ABS(weight - @weight) + ABS(height - @height)*3
这只是我试图让身高差更加重要的尝试。在这个例子中,我给它一个权重为3。这个例子假设一个人的身高以英寸为单位...如果你用厘米或其他单位可能会更好。