mysql where 条件使用新的列名_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貌似还没有更好的方法。

如果有的话,欢迎指教!

======================文档信息===========================

版权声明:非商用自由转载-保持署名-注明出处

署名(BY) :testcs_dn(微wx笑)

文章出处:[无知人生,记录点滴](http://blog.csdn.NET/testcs_dn)

==============欢迎关注我的个人微信订阅号(微wx笑)============

0ff7c19b1b32d62360cc4f450000fae9.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值