MySQLselect在24小时内不需要得分轨道行的独特播放器
我的系统为每24小时从最后一首曲目开始跟踪其分数的每个玩家插入一个分数编号 我基本上是在MySQLselect在24小时内不需要得分轨道行的独特播放器,mysql,Mysql,我的系统为每24小时从最后一首曲目开始跟踪其分数的每个玩家插入一个分数编号 我基本上是在曲目表中插入一个带有球员姓名、分数和当前时间戳的分数 我想选择至少24小时内未被跟踪的所有玩家 以下是我的尝试: `SELECT distinct player_name FROM tracks WHERE creation_date < DATE(NOW() - INTERVAL 1 DAY)`; `从创建日期
曲目
表中插入一个带有球员姓名、分数和当前时间戳的分数
我想选择至少24小时内未被跟踪的所有玩家
以下是我的尝试:
`SELECT distinct player_name FROM tracks WHERE creation_date < DATE(NOW() - INTERVAL 1 DAY)`;
`从创建日期<日期(现在()-间隔1天)`的曲目中选择不同的播放器名称;
但在所有情况下,这似乎都是对球员的回报,也许我对某些事情不是很了解
似乎我必须在select(选择)中运行select(选择),以选择最近的曲目,并检查其是否超过24小时?您收到了不需要的播放器,因为可能有一些播放器的记录超过24小时,而记录较新,例如:
player_name | creation_date
------------+--------------
'Foo' | 1970-01-01 <-- WHERE creation_date < DATE(NOW() - INTERVAL 1 DAY) matches this
'Foo' | 2019-04-04 <-- Today
SELECT player_name
FROM tracks
GROUP BY player_name
HAVING MAX(creation_date) < DATE(NOW() - INTERVAL 1 DAY);
另一种方法是使用按玩家名分组
以及HAVING MAX…
子句,例如:
player_name | creation_date
------------+--------------
'Foo' | 1970-01-01 <-- WHERE creation_date < DATE(NOW() - INTERVAL 1 DAY) matches this
'Foo' | 2019-04-04 <-- Today
SELECT player_name
FROM tracks
GROUP BY player_name
HAVING MAX(creation_date) < DATE(NOW() - INTERVAL 1 DAY);
查询#1
SELECT DISTINCT player_name
FROM tracks
WHERE player_name NOT IN
(
SELECT player_name
FROM tracks
WHERE creation_date >= DATE(NOW() - INTERVAL 1 DAY)
);
输出
| player_name |
| ----------- |
| Bob |
| player_name |
| ----------- |
| Bob |
查询#2
SELECT player_name
FROM tracks
GROUP BY player_name
HAVING MAX(creation_date) < DATE(NOW() - INTERVAL 1 DAY);
创建日期