【问题标题】:How can I use calculated fields in a WHERE clause with MySQL?如何在 MySQL 的 WHERE 子句中使用计算字段?
【发布时间】:2015-03-05 09:06:11
【问题描述】:

我有这样的查询:

SELECT client_id,name, last_name, email,  date_arrival,
  DATE_SUB(now(),INTERVAL 6 DAY) as date6before  FROM clients WHERE agent_id = 4 
    and  date_arrival > date6before

我怎样才能做到这一点?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    你可以再次计算where中的值:

    SELECT client_id,name, last_name, email,  date_arrival,
      DATE_SUB(now(),INTERVAL 6 DAY) as date6before  FROM clients WHERE agent_id = 4 
        and  date_arrival > DATE_SUB(now(),INTERVAL 6 DAY) 
    

    或使用having 子句

    SELECT client_id,name, last_name, email,  date_arrival,
      DATE_SUB(now(),INTERVAL 6 DAY) as date6before  FROM clients WHERE agent_id = 4 
        having  date_arrival > date6before   
    

    【讨论】:

      【解决方案2】:

      试试这个:

      SELECT temp.* FROM (SELECT client_id,name, last_name, email,  date_arrival, DATE_SUB(now(),INTERVAL 6 DAY) as date6before  FROM clients WHERE agent_id = 4 ) as temp WHERE temp.date_arrival > date6before
      

      【讨论】:

        猜你喜欢
        • 2011-04-22
        • 1970-01-01
        • 2012-02-12
        • 1970-01-01
        • 1970-01-01
        • 2011-10-25
        • 1970-01-01
        • 1970-01-01
        • 2011-07-13
        相关资源
        最近更新 更多