2014-10-06 88 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