Mysql Where条件用列标称
发布时间
阅读量:
阅读量
在某些情况下,我们对查询结果进行处理后生成了新的列名,但希望在查询条件中引用该列别名,然而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
目前尚未发现更为优越的解决方案。
若有相关建议,敬请不吝赐教!
======================文档信息=
全部评论 (0)
还没有任何评论哟~
