Php mysql中与数据库项最接近的值
我有一个实际公寓大小的表字段,比如55.74、66.27、80.43 在搜索合适的记录时,我希望得到一个按最接近该值排序的记录列表。如果用户在搜索字段中输入,例如65,则记录的顺序为: 66.27(相差1.27) 55.74(相差9.26) 80.43(相差14.43)Php mysql中与数据库项最接近的值,php,mysql,Php,Mysql,我有一个实际公寓大小的表字段,比如55.74、66.27、80.43 在搜索合适的记录时,我希望得到一个按最接近该值排序的记录列表。如果用户在搜索字段中输入,例如65,则记录的顺序为: 66.27(相差1.27) 55.74(相差9.26) 80.43(相差14.43) 查找此顺序的最佳方法是什么?您可以将orderby子句设置为新列,在本例中类似 orderby ABS(BlockSize - SearchValue) asc ABS()函数使所有负数变为正数,因此您的顺序将根据原始大小和搜
查找此顺序的最佳方法是什么?您可以将orderby子句设置为新列,在本例中类似
orderby ABS(BlockSize - SearchValue) asc
ABS()函数使所有负数变为正数,因此您的顺序将根据原始大小和搜索值之间的总差值进行调整
i、 e
因此,对于上述显示,如果搜索值为200,则会将Order列设置为升序数字的总差值(或在本例中为200、100、300、500)可以按如下方式实现:
select ABS(colname-65) as t
FROM table name
Order by ABS(colname-65)
虽然ORDERBY子句是正确的,但很明显,这个示例查询的其余部分是正确的wrong@Strawberry,根据什么你说查询是错误的?只是这样一个查询的结果对任何人都没有多大用处,因为OP没有提到他想要的结果,所以我提供了同样的示例查询。。。OP可以在selectWell中添加他想要的任何列,OP希望得到与给定值最接近的结果。
select ABS(colname-65) as t
FROM table name
Order by ABS(colname-65)