【问题标题】:MySQL select query, selecting where from a column generated on-the-flyMySQL 选择查询,从动态生成的列中选择位置
【发布时间】:2010-11-18 10:25:47
【问题描述】:

我有一个(我的)SQL 问题。如果我有一张桌子,假设名为 Cars 有不同的列,其中两个是 INT,我想将它们加在一起,一个称为后轮,另一个称为前轮。

我可以在选择时执行此查询以将它们添加在一起

select (backwheels+frontwheels) as totalwheels from Cars;

效果很好,但是当我尝试选择该 totalwheels 列上的位置时,出现错误

select (backwheels+frontwheels) as totalwheels from Cars where totalwheels=4;

我返回的错误:

“where”中的未知列“totalwheels” 子句'

是否有可能以某种方式从一个实际上并不存在的列中进行选择?

【问题讨论】:

    标签: sql mysql select where-clause


    【解决方案1】:

    你可以使用:

    select (backwheels+frontwheels) as totalwheels from Cars
    where (backwheels+frontwheels)=4;
    

    或者:

    SELECT * from 
    (select c.*, (backwheels+frontwheels) as totalwheels from Cars)
    where totalwheels=4;
    

    【讨论】:

      【解决方案2】:

      此错误是因为您的表没有“totalwheels”列,并且您的 where 子句试图在不存在的列上运行条件。

      您可以尝试使用 -

      select (backwheels+frontwheels) as totalwheels from Cars where (backwheels+frontwheels)=4;
      

      【讨论】:

        【解决方案3】:

        最好尝试使用别名:

        select (c.backwheels+c.frontwheels) as totalwheels from Cars as c where totalwheels=4;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-11-19
          • 1970-01-01
          • 2016-10-28
          • 2014-06-08
          • 2015-09-07
          • 2015-07-12
          • 1970-01-01
          相关资源
          最近更新 更多