[英]MySQL find nearest matching row
我認為這很簡單,但我無法理解它。
我有一個包含兩列的映射/查找表。 Col1用於從Col2查找值。
Col1是一個直的INT列,其值以20為增量遞增,從500開始。因此,它具有500,520,540等值。 這些值中的每一個都映射到Col2中的唯一十進制值。
現在當我運行查詢時,我得到Col1的值不是20的增量。因此,我會被要求從Col2找到一個像524.25這樣的值的映射。 在這種情況下,它應匹配Col1中520的值,並從Col2返回匹配的十進制值。 如果此值為530或更高,則應匹配540,依此類推。
希望這是有道理的。 提前致謝。
Vikram Goyal
您應該能夠首先按差異的絕對值對行進行排序(對於最佳匹配行最低),然后取第一行的Col2
。
SELECT Col2
FROM your_table
ORDER BY ABS( Col1 - your_value )
LIMIT 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.