簡體   English   中英

MySQL找到最接近的匹配行

[英]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.

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