关于mysql的where和having的一些疑问
写法1:错误
select id,name,round(st_distance_sphere(point(138.12,32.12),point(`long`,`lat`))/1000, 2) distance from `shops` where distance>1000
写法2:正确
select id,name,round(st_distance_sphere(point(138.12,32.12),point(`long`,`lat`))/1000, 2) distance from `shops` where round(st_distance_sphere(point(138.12,32.12),point(`long`,`lat`))/1000, 2)>1000
写法3:正确
select id,name,round(st_distance_sphere(point(138.1231231,32.12312),point(`long`,`lat`))/1000, 2) distance from `shops` having distance>1000
问题
为什么 round(st_distance_sphere(point(138.12,32.12),point(long
,lat
))/1000, 2)要用having?
推荐文章: