Mysql Where 条件使用列别名

有时候我们对查询的结果进行了处理形成了新的列名,又想在查询条件中使用此列别名,但MySQL是不支持这样做的。

 为什么不支持呢?

之所以MySQL中不允许使用列别名作为查询条件,据说是因为MySql中列的别名本来是返回结果的时候才显示的,不在SQL解析时候使用。

有没有解决办法呢?

当然有!

就是在你的查询语句外面再包一层SELECT

SELECT SS.* FROM (
select s.*,(2 * 6378.137* ASIN(SQRT(POW(SIN(PI()*(39.9148890000-s.lat)/360),2)+COS(PI()*39.9148890000/180)* COS(s.lat * PI()/180)*POW(SIN(PI()*(39.9148890000-s.lng)/360),2)))) as juli from vip_stores as s 
)SS
where SS.juli<5.0 order by S.juli asc limit 0,20
貌似还没有更好的方法。

如果有的话,欢迎指教!

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值