мой запрос
select 'id', 'name', 'bitrixid', 'pec_public_id', 'name' as 'bitrixname', 'address', 'yandex_map', 'office', 'date_from', 'date_to', 'days', 'cities',
( 6371 * acos( cos( radians(42.057669) ) * cos( radians( lat ) ) * cos( radians( lon ) - radians(48.288776) ) + sin( radians(42.057669) ) * sin( radians( lat ) ) ) )
AS distance
from 'a_delivery_pec_cities'
where 'lat' is not null and 'lon' is not null
and name like '%Derbent%'
and 'active' = 1
order by 'distance' asc
limit 1
offset 0
я должен добавить предложение, что расстояние с алиасом <100.
если я пытаюсь использовать такие цитаты или без кавычек
и
distance
<100
я получил ошибку "Неизвестный столбец" расстояние "в 'where clause'"
Вы можете использовать HAVING в конце инструкции
select 'id', 'name', 'bitrixid', 'pec_public_id', 'name' as 'bitrixname', 'address', 'yandex_map', 'office', 'date_from', 'date_to', 'days', 'cities',
( 6371 * acos( cos( radians(42.057669) ) * cos( radians( lat ) ) * cos( radians( lon ) - radians(48.288776) ) + sin( radians(42.057669) ) * sin( radians( lat ) ) ) )
AS distance
from 'a_delivery_pec_cities'
where 'lat' is not null and 'lon' is not null
and name like '%Derbent%'
and 'active' = 1
having distance < 100
order by 'distance' asc
Вы не можете использовать псевдоним в предложении where в MySQL.
select 'id', 'name', 'bitrixid', 'pec_public_id', 'name' as 'bitrixname', 'address', 'yandex_map', 'office', 'date_from', 'date_to', 'days', 'cities',
( 6371 * acos( cos( radians(42.057669) ) * cos( radians( lat ) ) * cos( radians( lon ) - radians(48.288776) ) + sin( radians(42.057669) ) * sin( radians( lat ) ) ) )
AS distance
from 'a_delivery_pec_cities'
where 'lat' is not null and 'lon' is not null
and name like '%Derbent%'
and 'active' = 1
and ( 6371 * acos( cos( radians(42.057669) ) * cos( radians( lat ) ) * cos( radians( lon ) - radians(48.288776) ) + sin( radians(42.057669) ) * sin( radians( lat ) ) ) )<100
order by 'distance' asc
limit 1
offset 0;
ORDER BY
позволяет использовать ALIAS
.
HAVING
всегда предшествует предложениюORDER BY
.