gpt4 book ai didi

php - 使用 ORM 将距离 SQL 函数转换为 Cake 友好查询

转载 作者:行者123 更新时间:2023-11-29 14:42:19 26 4
gpt4 key购买 nike

我正在尝试将以下 SQL 字符串转换为 Cake 查找查询。有没有简单的方法可以做到这一点?

SELECT longitude, latitude, firstname, surname, profile_pic, facebook_id, distance 
FROM
(SELECT longitude, latitude, firstname, surname, profile_pic, facebook_id, 6371 * ACos( Cos( RADIANS( users.latitude ) ) * Cos( RADIANS( $latitude ) ) * Cos( RADIANS( $longitude ) - RADIANS( users.longitude ) ) + Sin( RADIANS( users.latitude ) ) * Sin( RADIANS( $latitude ) ) ) AS distance
FROM users
) as users
WHERE distance <=2 AND facebook_id != $facebook
ORDER BY distance
LIMIT 20

最佳答案

我有一个代码片段做类似的事情:

$GeoCache->virtualFields = array(
'distance' => "SQRT(POW(UserGeolocationCache.latitude - {$latitude},2) + POW(UserGeolocationCache.longitude - {$longitude},2))"
);
$users = $GeoCache->find('all', array(
'conditions' => array('distance <' => '0.05'),
'order' => array('distance asc'),
'contain' => array('User'),
));

TL;DR 只需将距离计算填充到虚拟字段中并对其进行搜索即可。

关于php - 使用 ORM 将距离 SQL 函数转换为 Cake 友好查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7746447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com