簡體   English   中英

最接近 mysql 中數據庫條目的值

[英]Most closest value to database entry in 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() 函數使所有負數變為正數,因此您的訂單會根據原始大小和搜索值之間的總差進行調整

IE

Block Sizes | Search Value | Order Column
500 | 200 | 300
100 | 200 | 100
300 | 200 | 100
200 | 200 | 0

因此,對於上面的顯示,如果您的搜索值為 200,它會將 Order Column 設置為按升序排列的數字的總差(或在本例中為 200、100、300、500)

它可以實現如下:

  select  ABS(colname-65) as t
  FROM table name
  Order by ABS(colname-65)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM