Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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排序_Mysql_Sorting_Set - Fatal编程技术网

排序结果集中的MySql排序

排序结果集中的MySql排序,mysql,sorting,set,Mysql,Sorting,Set,我有下面的查询,它查询了过去20场比赛中涉及a队的运动成绩表,返回了每场比赛的进球数 SELECT *, `against` AS `goalsF` , `for` AS `goalsA` FROM `matches` , `teams` , `outcomes` WHERE ( `home_team_id`=7 AND `matches`.away_team_id = `teams`.team_id OR `away_team_id`=7 AND `matches`.home_team_i

我有下面的查询,它查询了过去20场比赛中涉及a队的运动成绩表,返回了每场比赛的进球数

SELECT *, `against` AS `goalsF` , `for` AS `goalsA`
FROM `matches` , `teams` , `outcomes`
WHERE (
`home_team_id`=7 AND `matches`.away_team_id = `teams`.team_id

OR 
`away_team_id`=7 AND `matches`.home_team_id = `teams`.team_id
)
AND `matches`.score_id = `outcomes`.outcome_id
ORDER BY `against', `date` DESC
LIMIT 0 , 20
我想按达成的目标对结果进行排序,然后在每组达成的目标中按日期进行排序,例如

前4个失球的结果按日期顺序=1 接下来的3个可能是结果,其中按日期顺序让步=2

我试过按日期排序,这给了我一个严格的日期顺序 我试过按日期排序,这给了我过去20年以外的匹配


可以做我想做的事吗?

如果你想按日期限制,请在WHERE子句中添加你要查找的日期范围,然后按允许的进球数排序

谢谢大家,我发现这很有效。此解决方案由另一个用户发布,但随后被删除,不知道为什么

SELECT * FROM (
    SELECT *, `against` AS `goalsF` , `for` AS `goalsA`
    FROM `matches` , `teams` , `outcomes`
    WHERE (
        `home_team_id`=7 AND `matches`.away_team_id = `teams`.team_id
        OR 
        `away_team_id`=7 AND `matches`.home_team_id = `teams`.team_id
    )
    AND `matches`.score_id = `outcomes`.outcome_id
    ORDER by `goalsF`
    LIMIT 0 , 20
) res
ORDER BY `date` DESC

考虑重新开始,只需要一个简洁明了的[数据集,以及您希望从查询中得到的结果集。此外,我不确定AND和OR是否按照您可能期望的方式工作-但我可能错了!我不知道具体的日期范围,我只需要最后的x个匹配项,它将始终是一个可变的日期范围。我对细化结果有进一步的问题,但我将开始另一个问题。。。