对于您的第一个查询:
SELECT username
FROM online
WHERE time > NOW() - INTERVAL 15 MINUTE
对于你的第二个:
SELECT username
FROM online
WHERE time BETWEEN NOW() - INTERVAL 60 MINUTE AND NOW() - INTERVAL 15 MINUTE
这两个查询都假设每个用户只在在线表中出现一次(如果确实如此,您应该添加一个UNIQUE约束来强制执行)。
如果一个用户名可以在表中出现多次,那么只需在第一个查询的SELECT之后添加DISTINCT,但是对于第二个查询,您需要稍微不同的方法:
SELECT DISTINCT username
FROM online
WHERE time > NOW() - INTERVAL 60 MINUTE
AND NOT EXISTS
(
SELECT *
FROM online
WHERE time > NOW() - INTERVAL 15 MINUTE
)