【mysql错误】用as别名 做where条件,报未知的列 1054
需求:SELECT a AS b WHRER b=1; //这样使用会报错,说b不存在。
因为mysql底层跑SQL语句时:where 后的筛选条件在先, as B的别名在后。所以机器看到where 后的别名是不认的,所以会报说B不存在。
这个b只是字段a查询结果的一个别名
如果非要用B做筛选条件的话:解决方案:外边再嵌套一层。
select * from(
select A as B from table
) t
where t.B = XXX -- 任意的筛选条件
如果不嵌套,只能用A做筛选条件了
作者:zhangzhiping35
来源链接:https://www.cnblogs.com/zhangzhiping35/p/10980343.html
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。