如何在 MySQL 的 WHERE 子句中使用计算字段?
Posted
技术标签:
【中文标题】如何在 MySQL 的 WHERE 子句中使用计算字段?【英文标题】:How can I use calculated fields in a WHERE clause with MySQL? 【发布时间】: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
我怎样才能做到这一点?
【问题讨论】:
【参考方案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
【讨论】:
以上是关于如何在 MySQL 的 WHERE 子句中使用计算字段?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel 中 MySQL 查询的 where 子句中使用数组 [重复]