IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]Mysql Where 条件使用列别名

    testcs_dn发表于 2017-04-06 18:56:32
    love 0

    有时候我们对查询的结果进行了处理形成了新的列名,又想在查询条件中使用此列别名,但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笑)============




沪ICP备19023445号-2号
友情链接