2014-10-06 76 views
2

很简单,MYSQL选择记录大于或首先

我有这样一个表:

ID, 
Name, 
Key, 
Score 

我要选择具有分数大于0.5或大于或等于表中所有的钥匙只是最高(如果没有)。

数据例如:

1, Messi, AAA, 0.8 
2, Messi, AAA, 0.7 
3, Ronaldo, BBB, 0.1 
4, Ronaldo, BBB, 0.3 
5, Ronaldo, BBB, 0.4 
6, Rooney, CCC, 0.9 
7, Rooney, CCC, 0.4 
8, Rooney, CCC, 0.2 

我希望得到的结果是:

1, AAA, 0.8 
2, AAA, 0.7 
3, BBB, 0.4 
6, CCC, 0.9 

这可能吗?

回答

2

你可以这样做:

SELECT 
    tbl.* 
FROM 
    table1 AS tbl 
WHERE 
    tbl.Score>0.5 
    OR 
    (
     SELECT 
      MAX(t.Score) 
     FROM 
      table1 AS t 
     WHERE 
      t.Name=tbl.Name 
      AND t.[Key]=tbl.[Key] 
    ) = tbl.Score 

这将让你这样的结果:

1 Messi AAA 0.8 
2 Messi AAA 0.7 
5 Ronaldo BBB 0.4 
6 Rooney CCC 0.9 
+0

简单干净。 拯救生命! – Bergkamp 2014-10-06 12:18:55