У меня есть таблица результатов, выглядит следующим образом (есть только один результат на данный момент): Unknown Колонка Haversine запрос с колонной, созданной в Query работает
Вот мой запрос, который производит этот результат:
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'
Я создаю столбцы долготы и широты, поскольку запрос выполняется, но я хочу искать эти столбцы и возвращать расстояние с другой частью моего запроса, являющейся частью haversine.
Так что мой полный запрос теперь выглядит следующим образом:
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'
Ошибка я получаю обратно «Неизвестный столбец„долгота“в„списке поля“», который будет иметь смысл, как есть на самом деле не longitude в базе данных, поскольку она сортируется по мере запуска запроса.
Мне интересно, знает ли кто-нибудь, как бороться с этим?
Как всегда, любая помощь оценивается.
Спасибо, Codarz360
Благодарим за отзыв. Теперь я получаю сообщение об ошибке «FUNCTION theescorts.latitude не существует» мне нужно добавить функцию в базу данных или что-то еще? – Codarz360
Проверка у вас есть запятая после 'широты ', во внешнем select, у меня была опечатка, которую я исправил. –
Удивительный человек благодарит за вашу помощь, которая, похоже, работает, и я постараюсь вам ответить правильно. Кажется, я получаю только один результат, хотя я знаю, что у меня есть несколько записей в базе данных, и вы не знаете, почему это так? Еще раз спасибо большое! – Codarz360