繁体   English   中英

Wordpress sql 查询结果与 sql 查询在 phpmyadmin 查询不同的顺序

[英]Wordpress sql query results vs sql query in phpmyadmin query different order

我对 wordpress 有点困惑,我有以下查询来计算帖子之间的距离:

public function distance($latitude, $longitude){
    global $wpdb;
    $sql = "SELECT l.post_id,( 6371 * acos( cos( radians($latitude) ) * cos( radians( l.latitude ) ) 
       * cos( radians(l.longitude) - radians($longitude)) + sin(radians($latitude)) 
       * sin( radians(l.latitude)))) AS distance 
    FROM localisation as l
    HAVING distance < 50
    ORDER BY distance ASC";
    $output = $wpdb->get_results($sql, ARRAY_A);
    dump($output) // <--- Here i test the result

}

output 显示从最近到最远(大约 50 公里)的帖子,除了当我复制/粘贴相同的查询时,我没有相同的结果(产品从最近到最远的顺序排列,但顺序不同)

Output 来自此查询:

post_id. | distance. 
1245       0.25029229952593496
8547       0.25029229952593496
78451      0.25029229952593496
45874      0.4428014744990856

但是来自 phpmyadmin 的 output:

post_id. | distance. 
78451      0.25029229952593496
8547       0.25029229952593496
1245       0.25029229952593496
45874      0.4428014744990856

顺序不一样,连排序都好

你有想法吗? 为什么我得到不同的订单?

谢谢

我认为那是因为你应该先按“距离”排序,然后再按“id”排序。 Php 我的管理员默认按 id 'DESC' 排序,但 wp 按 id 'ASC' 排序,您应该尝试在 wp 中查询类似这样的内容

ORDER BY distance ASC, ID ASC

或者

ORDER BY distance ASC, ID DESC

ORDER 两列。

ORDER BY post_id ASC, distance ASC 如果你想要第一个结果

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM