gpt4 book ai didi

php - 未知列 Haversine 查询,列在查询运行时创建

转载 作者:行者123 更新时间:2023-11-28 23:58:55 24 4
gpt4 key购买 nike

我有一个看起来像这样的结果表(目前只有 1 个结果): enter image description here

这是我生成该结果的查询:

SELECT DISTINCT 
ID, post_author, post_title, post_type, post_status,
max(CASE WHEN escort_details.`meta_key` = 'longitude' THEN
escort_details.meta_value END) AS longitude,
max(CASE WHEN escort_details.`meta_key` = 'latitude' THEN
escort_details.meta_value END) AS latitude
FROM wp_posts as escorts
INNER JOIN wp_postmeta as escort_details
WHERE escorts.post_type = 'escorts'
AND escorts.post_status = 'publish'

我正在运行查询时创建经度和纬度列,但我想搜索这些列并返回与我的查询的另一部分(半正弦部分)的距离。

所以我的完整查询现在看起来像这样:

SELECT DISTINCT 
ID, post_author, post_title, post_type, post_status,
max(CASE WHEN escort_details.`meta_key` = 'longitude' THEN
escort_details.meta_value END) AS longitude,
max(CASE WHEN escort_details.`meta_key` = 'latitude' THEN
escort_details.meta_value END) AS latitude,
( 3959 * acos( cos( radians("121.184006") ) * cos( radians( latitude ) )
* cos( radians( longitude ) - radians("14.817371") )
+ sin( radians("121.184006") ) * sin(radians(latitude)) ) ) AS distance
FROM wp_posts as escorts
INNER JOIN wp_postmeta as escort_details
WHERE escorts.post_type = 'escorts'
AND escorts.post_status = 'publish'

我收到的错误是“'field list' 中的未知列'longitude'”,这是有道理的,因为数据库中实际上没有经度字段,因为它是在运行查询时创建的。

我想知道是否有人知道解决这个问题的方法?

一如既往,我们将不胜感激。

谢谢,Codarz360

最佳答案

您不能在进行不同的计算时使用别名。一种方法是编写一个外部查询来获取字段列表,然后进行计算

select
distinct
ID, post_author, post_title, post_type, post_status,longitude,latitude,
( 3959 * acos( cos( radians("121.184006") ) * cos( radians( longitude ) )
* cos( radians( latitude ) - radians("14.817371") )
+ sin( radians("121.184006") ) * sin(radians(longitude)) ) ) AS distance
from (
SELECT
ID, post_author, post_title, post_type, post_status,
max(CASE WHEN escort_details.`meta_key` = 'longitude' THEN
escort_details.meta_value END) AS longitude,
max(CASE WHEN escort_details.`meta_key` = 'latitude' THEN
escort_details.meta_value END) AS latitude
FROM wp_posts as escorts
INNER JOIN wp_postmeta as escort_details
WHERE escorts.post_type = 'escorts'
AND escorts.post_status = 'publish'
)x

关于php - 未知列 Haversine 查询,列在查询运行时创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30661967/

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