繁体   English   中英

如何在 MySQL 的 WHERE 子句中使用计算字段?

[英]How can I use calculated fields in a WHERE clause with MySQL?

我有这样的查询:

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

我怎样才能做到这一点?

您可以再次计算 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   

尝试这个:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM