MySQL找到两列之间最接近的整数

标签 mysql

现在,我有一个 IP,我正在将其转换为整数,然后尝试从表中找到与某个位置最接近的匹配项。

enter image description here

我现在正在这样做:

$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 

SQL Fiddle Example

关于MySQL找到两列之间最接近的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12114691/

相关文章:

php - Mysql连接不上,目标机器主动拒绝

c# - 测试时尝试将 C# 代码与底层数据库隔离可以得到什么好处?

mysql - 如何在 VB.net 中使用多个结果

php - MySQL 查询,获取 user_ID,然后获取 Restaurant_ID,然后从与用户表中的电子邮件匹配的 3 个表中获取 restaurantName

php - Mysql导致PHP - 数组或对象?

php - MySQL查询忽略大写

mysql - 不使用sql选择不满足条件的id

php - 使用函数从数组返回变量

python - 每 x 分钟运行一次 python 作业

php - Pdo多行插入问题