Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        6年前关闭。
                                                                                            
                
        
因此,我在联盟中有所有球队的分贝表。在网站的主页上,我需要显示团队的位置,以及两个得分更高(更多分)的团队,以及下面两个比特定团队得分低的团队。最简单的部分是,该特定的团队ID始终相同(我只需要显示该团队的当前位置)即可。

id | Name | Points
---|------|------
0  | Team1| 9
1  | Team2| 5
2  | Team3| 3
3  | Team4| 3
4  | Team5| 2
5  | Team6| 1


因此,假设我要针对team3(ID 3),我正在寻找的结果是

1. team1 9
2. team2 5
3. team3 3
4. team4 3
5. team5 2


我对mysql查询不是很好,请帮助,我被卡住了。

最佳答案

其他答案做了某种循环构造。我更喜欢用SQL处理整个事情:

SELECT * FROM (
  (SELECT * FROM teams
  WHERE POINTS >= (SELECT POINTS FROM teams WHERE ID=3)
  ORDER BY POINTS ASC LIMIT 0,3)
  UNION
  (SELECT * FROM teams
  WHERE POINTS < (SELECT POINTS FROM teams WHERE ID=3)
  ORDER BY POINTS DESC LIMIT 0,2)
) AS `teamResults` ORDER BY POINTS DESC


SQLFiddle在这里:http://sqlfiddle.com/#!2/a17ad/10

以下是其功能的细分:

让有问题的团队以及前面的2个团队一起。

将其与:

将2个团队直接放在我们所选团队的后面。

最后:

按点对整个结果进行降序排列。

关于php - 根据足球队得分在特定ID上下两行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20840886/

10-15 08:11