码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2016-08-15 18:49:08      阅读:663      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!