2011-06-03 70 views
2

我怎么能采取MySQL查询像这样:如何限制mysql的查询,并限制它的时间戳?

SELECT id,title,timestamp,upvotes,downvotes,views FROM {$table} ORDER BY count DESC LIMIT $start_from, 20 

并基于timestamp(这是一个标准的MySQL时间戳)

让我的MySQL不仅LIMIT $start_from, 20但除了...

限制由:

如果今天 制成,如果这是今天和一个星期前 之间进行,如果这是今天和莫之间进行nth ago

有没有想法?

回答

8
SELECT id, title, timestamp, upvotes, downvotes, views 
FROM {$table} 
WHERE timestamp >= DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH) 
ORDER BY count 
DESC LIMIT $start_from, 20 

MySQL Reference Manual DATE_SUB

1

添加where子句以检查所需范围的时间戳。

2
SELECT id,title,timestamp,upvotes,downvotes,views 
FROM {$table} 
where timestamp >= now() - interval 1 week 

SELECT id,title,timestamp,upvotes,downvotes,views 
FROM {$table} 
where timestamp >= now() - interval 1 month