[英]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.