【发布时间】:2015-03-18 02:18:29
【问题描述】:
我意识到这不会直接从 MSSQL 转换为 MySQL,但我不确定如何使其工作。感谢您提供的任何帮助。
;WITH cte As (
SELECT
post_id,
status,
dealer,
distributor,
SUM(
3959 * acos(
cos( radians(%f) ) *
cos( radians( lat ) ) *
cos( radians( lng ) - radians(%f) ) +
sin( radians(%f) ) *
sin( radians( lat ) )
)
)
AS DISTANCE
FROM wp_geodatastore
GROUP BY post_id, status, dealer, distributor
)
SELECT post_id, status, dealer, distributor, DISTANCE
FROM cte WHERE (DISTANCE < %d)
AND status = 'publish' AND dealer = 'on' AND distributor = 'on'
ORDER BY DISTANCE
OFFSET %d ROWS
FETCH NEXT %d ROWS ONLY;
【问题讨论】:
-
我确实看到了那个帖子,但我没有足够的经验知道如何处理这些建议。 TEMPORARY 表、DERIVED 表、内联视图?
-
我会尝试使用临时表,也许不是那么优雅的解决方案,但绝对应该可以。
-
感谢凯南的帮助,看起来答案是让它成为一个子查询。见下文。
标签: mysql sql-server common-table-expression