排序结果集中的MySql排序
我有下面的查询,它查询了过去20场比赛中涉及a队的运动成绩表,返回了每场比赛的进球数排序结果集中的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
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个匹配项,它将始终是一个可变的日期范围。我对细化结果有进一步的问题,但我将开始另一个问题。。。