php - 使用 sql 查询列出离我最近的联系人
问题描述
我想使用以下 sql 查询对与登录用户关系密切的人员列表进行排序。但我想为查询添加一个约束。如果我想列出 10 公里内的人,我需要做什么。
SELECT *,((((acos(sin((".$latitude."*pi()/180)) *
sin((`ulat`*pi()/180))+
cos((".$latitude."*pi()/180)) *
cos((`ulat`*pi()/180)) *
cos(((".$longitude."- `ulong`)*
pi()/180))))*180/pi())*60*1.1515*1.609344))
AS `distance` FROM users
WHERE ulat IS NOT NULL AND
ulong IS NOT NULL AND
user_status = '1' AND user_id <> $userid ORDER BY `distance` ASC
解决方案
用于HAVING
过滤结果。
SELECT *,((((acos(sin((".$latitude."*pi()/180)) *
sin((`ulat`*pi()/180))+
cos((".$latitude."*pi()/180)) *
cos((`ulat`*pi()/180)) *
cos(((".$longitude."- `ulong`)*
pi()/180))))*180/pi())*60*1.1515*1.609344))
AS `distance` FROM users
WHERE ulat IS NOT NULL AND
ulong IS NOT NULL AND
user_status = '1' AND user_id <> $userid
HAVING DISTANCE < 10
ORDER BY `distance` ASC
推荐阅读
- r - 如何保存已使用 assign() 创建的 R 数据对象?
- javascript - 反应表单钩子如何验证选择选项
- xamarin - 我更改了 XF 应用程序中的图标。info.plist iTunes 图稿 1x 和 2x。但是当我在本地部署到手机时图标不会改变
- java - 从 AndroidStudio 中的矢量中删除挡板
- linux-kernel - 有没有办法对 Linux 内核启动选项进行硬编码?
- c++ - 为什么在 C++ 中合并两个已排序的链表时总是出现此错误?
- php - 如何为特定运输方式禁用多个支付网关
- c++ - gtk_grid_new(); 在编译时导致未定义的引用错误
- react-admin - 在 React-admin 中以编程方式重定向或构建 URL
- php - 添加后不显示 Prestashop 1.7 图像