首页 > 数据库技术 > 详细

MySQL中不允许使用列别名作为查询条件

时间:2016-08-15 18:48:34      阅读:241      评论:0      收藏:0      [点我收藏+]

在MySQL中有个特殊的规定,即不允许使用列别名作为查询条件。比如有下面一个表:

select 
    ID, 
    title, 
    concept, 
    conceptLength, 
    addUserId, 
    modifyTime
from collections_wisdom

技术分享

将SQL修改如下:

select 
    ID+1 as newID
    title, 
    concept, 
    conceptLength, 
    addUserId, 
    modifyTime
from collections_wisdom
where newID>2

那么,执行起来就会出现异常:StatementCallback; bad SQL grammar

实在要执行,只好把新字段的组成在条件里再实现一遍,如下:

select 
    ID+1 as newID, 
    title, 
    concept, 
    conceptLength, 
    addUserId, 
    modifyTime
from collections_wisdom
where (ID+1)>2

技术分享

之所以MySQL中不允许使用列别名作为查询条件,据说是因为MySql中列的别名本来是返回结果的时候才显示的,不在SQL解析时候使用。在没有更令人信服的解释出现前,权且当做这样吧。

MySQL中不允许使用列别名作为查询条件

原文:http://www.cnblogs.com/doudouxiaoye/p/5773749.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!