MySQL怎么查找一个数附近的数值?

MySQL怎么查找一个数附近的数值?,第1张

你可以这样做;

查找附近4个数,那么可以取小于该数的3个数,或者大于该数的3个数;看样子是小于10的优先取值

$arr1 = select * from tablename where val<10 orderby val desc limit(3)

$arr2 = select * from tablename where val>10 orderby val asc limit(3)

直接循环输出

foreach($i=0i<3i++){

$str[] = $arr1[i]

$str[] = $arr2[i]

}

到时候可以得到$str数组,剔除为0的数组,得到的$str 直接输出$str[0] $str[1] $str[2]

希望对你有所帮助~~

回答的有点晚,正好我做到相关的项目了,希望能帮到其他人.

餐馆申请时候通过填写的地址取得经纬度存入数据库,下面是查询某个经纬度附近500米的

$user_lat='41.749034'//传过来的纬度

$user_lng='123.46017'//传过来的经度

$store_mod=db("store")//数据库

$storelist=$store_mod->query("SELECT

*,ROUND(6378.138*2*ASIN(SQRT(POW(SIN((".$user_lat."*PI()/180-【store_latitude】*PI()/180)/2),2)+COS(".$user_lat."*PI()/180)*COS(【store_latitude】*PI()/180)*POW(SIN((".$user_lng."*PI()/180-【store_longitude】*PI()/180)/2),2)))*1000)

AS distance FROM store HAVING 【搜索条件如 state=1】 distance<【周围距离多少米 如

500】 ORDER BY distance ASC")

var_dump($storelist)

【】sql语句中括号的store_latitude,store_longitude为你数据库存的商家经纬度的字段名,其余的为注释

查询id值在8附近的4条记录:

SELECT ABS(id-8),* FROM article ORDER BY 1 LIMIT 4

原理,使用id与指定值之差的绝对值作为排序项目,能按照接近程度查询数据,使用LIMIT限制结果数量。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5905181.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-07
下一篇 2023-03-07

发表评论

登录后才能评论

评论列表(0条)

保存