在一个SQL查询中表达此内容的最佳方式是什么?
“选择一些属于表格中最新项目x天内的随机项目。”
我尝试了以下内容:
SELECT *
FROM table
HAVING `timestamp` >= SUBDATE(MAX(`timestamp`), INTERVAL 5 DAY)
ORDER BY RAND()
LIMIT 10
但这只会给我一个结果,而不是10. WHERE
而不是HAVING
因为使用了MAX()
而没有削减它。
答案 0 :(得分:3)
您可能希望在子查询中使用MAX
语句:
SELECT *
FROM table
WHERE `timestamp` >= SUBDATE((SELECT MAX(`timestamp`) FROM table), INTERVAL 5 DAY)
ORDER BY RAND()
LIMIT 10
答案 1 :(得分:0)
SELECT *
FROM table
where `timestamp` >= (select SUBDATE(MAX(`timestamp`), INTERVAL 5 DAY) from table )
ORDER BY RAND()
LIMIT 10;