现在,我有一个 IP,我正在将其转换为整数,然后尝试从表中找到与某个位置最接近的匹配项。
我现在正在这样做:
$sql = "SELECT * FROM table WHERE IP_FROM >= $x AND IP_TO <= $x LIMIT 1;";
有时我得不到任何结果,因为 $x 漏掉了。
我想知道如何获得最近的行。
谢谢
最佳答案
你可以用 LEAST 做到这一点,例如:
select *
from Table1 t
order by LEAST(abs(t.IP_FROM - 123), abs(t.IP_TO - 123))
LIMIT 1
关于MySQL找到两列之间最接近的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12114691/