[英]How to add a where clause in the alias
我的查询
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子句”中的未知列“距离””
您不能在MySQL的where子句中使用别名。
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;
您可以在语句末尾使用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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.