Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL选择每日间隔之间的日期范围_Mysql_Sql_Select - Fatal编程技术网

Mysql SQL选择每日间隔之间的日期范围

Mysql SQL选择每日间隔之间的日期范围,mysql,sql,select,Mysql,Sql,Select,我有一个数据库 它将每小时更新一次 我只想选择间隔1天的数据 前 星期一 星期二 星期三 我不想选择这些间隔之间的所有数据 Select * from highscores where ........... 我不知道该怎么做 Select * from highscores where ........... 我希望得到的结果是: id player_id total economy research military date (2017-09-07 (first record of

我有一个数据库

它将每小时更新一次

我只想选择间隔1天的数据

  • 星期一
  • 星期二
  • 星期三
  • 我不想选择这些间隔之间的所有数据

    Select * from highscores where ...........
    
    我不知道该怎么做

    Select * from highscores where ...........
    
    我希望得到的结果是:

    id player_id total economy research military date (2017-09-07 (first record of that day)
    
    id player_id total economy research military date (2017-09-08 (first record of that day)
    
    id player_id total economy research military date (2017-09-09 (first record of that day)
    
    id player_id total economy research military date (2017-09-10 (first record of that day)
    
    id player_id total economy research military date (2017-09-11 (first record of that day)
    
    .....
    
    谢谢


    这就是解决方案:

    SELECT 
        h.id, h.player_id, h.total, h.economy, h.research, h.military, h.date
    FROM 
        highscores h
    WHERE 
        h.id = (SELECT hs.id 
                FROM highscores hs
                WHERE UNIX_TIMESTAMP(DATE_FORMAT(h.date,"%Y-%m-%d 00:00:00")) = UNIX_TIMESTAMP(DATE_FORMAT(hs.date,"%Y-%m-%d 00:00:00"))
                  AND h.player_id = hs.player_id
                ORDER BY date ASC
                LIMIT 1)
    

    您可能正在寻找子查询,不要使用
    select*

    SELECT h.id, h.player_id, h.total, h.economy, h.reasearch, h.military, h.date
    FROM highscores h
    WHERE h.id = (
        SELECT hs.is FROM highscores hs
        WHERE UNIX_TIMESTAMP(DATE_FORMAT(h.date,"%Y-%m-%d 00:00:00")) = UNIX_TIMESTAMP(DATE_FORMAT(hs.date,"%Y-%m-%d 00:00:00"))
        AND h.player_id = hs.player_id
        ORDER BY date ASC
        LIMIT 1
    )
    
    通过子查询,您可以为每条记录选择一天的开始时间,
    按日期排序,最早的优先,因此只有在玩家匹配的情况下才从一天开始排序

    将其限制为1,因为您只需要1个匹配项

    这里的大多数人需要格式化文本,而不是图像。(或者,更糟糕的是,链接到图像。)MySQL有
    DAYOFWEEK()
    WEEKDAY()
    函数。你能分享一下你想要得到的结果吗?这将使问题更容易理解添加几行示例表数据以及预期结果。都是格式化文本。我正在尝试这是我第一次在这里发布:)