嗨, 大家好: 网站在新年后正式开通,欢迎大家加入我们,共同维护一个良好氛围的中国技术社区。 欢迎举报不良帖子,欢迎提供建议。
我们的QQ群:136102234,欢迎进群找答案,里边会有很多资深的大师们。 point overflow

请着重讲解原理。 众所周知在mysql查询语句关键字中,select关键字运行顺序是在having后,在order by前。 那么既然是如此,select coloum as 别名 更不应该可以被having操作吧?因为在having运行的的时候,select还没运行呢,也就是没产生视图吧。 是我理解的有误,还是他有另外一种运行方式(例如运行sql语句前率先初始化..等等) 望懂的人不吝赐教,谢谢!

mysql/oracle 都可以讲讲

提问了 2016-05-05 11:12:49

jkant's gravatar image

jkant ♦♦
11131137138
采纳率: 3%


我之前也考虑过这个问题。 结论是:网上给的资料都是大概的针对整个sql来说,而并非针对mysql.

mysql的处理方式是中间生成虚拟表(或者叫临时表),而这个虚拟表的生成的列靠的就是select,所以猜测类似having之后的操作,其实内部已经根据select生成了虚拟表,列自然也是as后的。

永久链接

已回答 2016-05-05 11:13:01

jkant's gravatar image

jkant ♦♦
11131137138
采纳率: 3%

你的回答
切换预览

关注这个问题

邮件:

登录之后,你可以在这里订阅任何更新。

RSS:

回答

回答和评论

Markdown基本语法

  • *italic* or _italic_
  • **bold** or __bold__
  • 链接:[文本](http://url.com/ "标题")
  • 图片?![alt 文本](/path/img.jpg "标题")
  • 编号列表: 1. Foo 2. Bar
  • 如果想要换行,只需要在前一行结尾处插入2个空格即可。
  • 支持基本HTML标记

问题标签:

×72
×2
×1

已提出的问题: 2016-05-05 11:12:49

问题浏览量: 1,225 次

最后更新: 2016-05-05 11:13:01